Newsgroups: comp.lang.scheme Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!mintaka!mintaka.lcs.mit.edu!alan From: alan@lcs.mit.edu (Alan Bawden) Subject: Re: eqness of procedures In-Reply-To: barmar@think.com's message of Wed, 8 May 91 06:34:27 GMT Message-ID: Sender: news@mintaka.lcs.mit.edu Organization: ITS Preservation Society References: <9105080039.aa09228@mc.lcs.mit.edu> <1991May8.063427.25012@Think.COM> Date: 9 May 91 10:01:39 Lines: 27 In article <1991May8.063427.25012@Think.COM> barmar@think.com (Barry Margolin) writes: In article <9105080039.aa09228@mc.lcs.mit.edu> shivers@bronto.soar.cs.cmu.EDU (Olin Shivers) writes: >In the revised report that I have (3.95) > (eqv? (lambda (x) x) (lambda (x) x)) >is explicitly undefined -- implementations can return either true or false. > >However, this is never spelled out for > (eq? (lambda (x) x) (lambda (x) x)) >Has this been settled? (eq? x y) implies (eqv? x y), which implies (not (eqv? x y)) implies (not (eq? x y)). So, if those two procedures can be non-eqv, then they can be non-eq. This is true; if the EQV? case is undefined, it follows that the EQ? case -may- return #F. But perhaps Olin is wondering if (eq? (lambda (x) x) (lambda (x) x)) might be -required- to return #F (even though EQV? was allowed to be smarter and discover their equivalence). My memory is that the -intent- of the Revised Report authors was that EQ? was to be just as undefined as EQV? in this case.