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: <ALAN.91May9100139@august.lcs.mit.edu>
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.
