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

EQ?, again



    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?