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

EQ? again, already

>From a message I received by papermail (for obscure reasons) from Will
Clinger, I infer that I may have confused a lot of people out there.
When I said that I take EQ? as my axiomatic notion of identity, I
neglected to say that I reject the further definition of EQ? in such
implementational terms as comparison of pointers.  I expect EQ? to
behave more like EQV? (or like the Common Lisp EQL), so it might have
been more clear if I had used EQV? everywhere instead of EQ? in my last
long message.  To put it another way, I constrain the meaning of my
identity operation by positing not only such requirements as that (EQ? X
X) always be true for X any name, but also that (EQ? (+ X Y) (+ X Y)),
(EQ? (* X Y) (* X Y)), and so on, so that numbers of the same type and
value are always EQ? (or EQV?, if you insist).  I argued for changing
Common Lisp EQ to have the semantics EQL now has, but there was too much
implementation tradition behind EQ and so EQ remained unchanged.  I feel
it is a mild pity that RRRS has made this same mistake.