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

*To*: JAR@MC.LCS.MIT.EDU*Subject*: survey - JAR's answers*From*: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>*Date*: Thu, 20 Feb 86 14:48:08 EST*cc*: RRRS-AUTHORS@MC.LCS.MIT.EDU*In-reply-to*: Msg of Wed 19 Feb 86 21:37:49 EST from Jonathan A Rees <JAR at MC.LCS.MIT.EDU>

Here are my own answers. I 1. (EQ? (LAMBDA (X) X) (LAMBDA (Y) Y)) ;"Coalescing" E 2. (EQV? (LAMBDA (X) X) (LAMBDA (Y) Y)) I 3. (LET ((X (LAMBDA (Z) Z))) (EQ? X X)) ;"Splitting" E 4. (LET ((X (LAMBDA (Z) Z))) (EQV? X X)) I 5. (LET ((X ... exact number ...)) (EQ? X X)) X 6. (EQ? #\X #\X) These are the only possible choices given the conjunction of the following constraints, which I find desirable: (a) I want to give implementations a lot of leeway in the optimizations they do on closures. (b) I want closures to not have associated locations (in the sense of denotational semantics), i.e. I want to equate a closure with its behavior when called. (c) I want EQV? to behave in a machine-independent manner, without requiring that it solve the halting problem. Jonathan.

- Prev by Date:
**EQV? note** - Next by Date:
**EQV? note (tiny correction)** - Prev by thread:
**EQV? note** - Next by thread:
**Re: survey - JAR's answers** - Index(es):