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

EQ?, again

I hate to drag this out of the closet, but as I remember, there was no
agreement on the question of the semantics of EQ? and EQV?, and in fact
we seemed deadlocked.  So I would like to take a survey.  I think most
of us have pretty strong opinions, so I'm not sure how much good more
arguing will do right now, but I'm interested in finding out what
everyone thinks.  I will be happy to collate and summarize the results
of the survey.  You may send your answers either to RRRS-AUTHORS or just
to me.

I believe that we all agree on what EQ? and EQV? do when presented with
cons cells, vectors, symbols, booleans, null, and strings.  I think we
also agree on what EQV? does when it's presented with exact numbers and
characters.  I don't think we agree on what EQ? does with numbers and
characters, or what either procedure does with procedures.  I won't even
ASK about ports and continuations; we can discuss that later.

If you can & care to summarize your opinion or motivation in two or
three short sentences, feel free, but I'd like to see how the survey
goes before we start flaming again.  If you've forgotten the debate and
would like me to re-send any of the main position messages on this topic
(Pitman, Steele, and Clinger are the ones I remember) just ask and I'll
do so.

Here's the survey.  If you object to it, please invent a better one.


For each expression, specify what you think its value or meaning should
be, one of:

T - Always true
F - Always false
I - Implementation-dependent but NOT AN ERROR
E - An error (undefined effect)
X - I don't care
U - Undecided
O - Other (specify)

Here are the expressions:

1. (EQ?  (LAMBDA (X) X) (LAMBDA (Y) Y))		;"Coalescing"
2. (EQV? (LAMBDA (X) X) (LAMBDA (Y) Y))
3. (LET ((X (LAMBDA (Z) Z))) (EQ?  X X))	;"Splitting"
4. (LET ((X (LAMBDA (Z) Z))) (EQV? X X))
5. (LET ((X ... any expression evaluating to an exact number ...))
     (EQ? X X))
6. (EQ? #\X #\X)