[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: JAR@MC.LCS.MIT.EDU, RRRS-AUTHORS@MC.LCS.MIT.EDU*Subject*: EQ?, again*From*: Guy Steele <gls@THINK-AQUINAS.ARPA>*Date*: Fri, 28 Feb 86 16:40 EST*Cc*: gls@THINK-AQUINAS.ARPA*In-Reply-To*: <[MC.LCS.MIT.EDU].823678.860219.JAR>

Date: Wed, 19 Feb 86 21:37:49 EST From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU> I 1. (EQ? (LAMBDA (X) X) (LAMBDA (Y) Y)) ;"Coalescing" I 2. (EQV? (LAMBDA (X) X) (LAMBDA (Y) Y)) I 3. (LET ((X (LAMBDA (Z) Z))) (EQ? X X)) ;"Splitting" T 4. (LET ((X (LAMBDA (Z) Z))) (EQV? X X)) I 5. (LET ((X ... any expression evaluating to an exact number ...)) (EQ? X X)) I 6. (EQ? #\X #\X) Let me qualify those five "I" answers. If two things are EQ?, then they should be operationally identical. (One consequence is that two things that are EQ? should also be EQV?.) If they are not EQ?, then they might or might not be operationally identical. The contrapositive is: if two things are proved in the course of a program execution to be operationally distinct, then EQ? must consistently be false of them (in both the future and the past). --Guy

**References**:**EQ?, again***From:*Jonathan A Rees <JAR@MC.LCS.MIT.EDU>

- Prev by Date:
**named-lambda, etc** - Next by Date:
**numeric predicates** - Prev by thread:
**EQ?, again** - Next by thread:
**EQ?, again** - Index(es):