[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EQ?, again
Date: Fri, 28 Feb 86 18:26:57 EST
From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>
Date: Fri, 28 Feb 86 16:40 EST
From: Guy Steele <gls at THINK-AQUINAS.ARPA>
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)
It took me a while to figure out how to reconcile your answer to 3 with
your answer to 4. I take it you want procedures to know their identity,
but that you imagine an implementation would still want the liberty to
make (identity-preserving) copies, so EQ? might fail to recognize two
procedures being the same, even though EQV? could succeed?
Sure. Imagine a multiprocessing extension of SCHEME. (Call it, just
for laughs, MULTILISP.) It might be crucial to efficiency to allow
making copies of code for distribution to various processors. I wonder
what Halstead has to say about this.
- References:
- EQ?, again
- From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>