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

MEMBER and ASSOC vs EQL



I claim that it would be a mistake to change MEMBER and ASSOC to use EQL.

Absolutely every single time that MEMBER or ASSOC is used in the Lisp
machine system, and probably most uses in user code, they are used
specifically because they user wanted to compare lists.  (Where numbers
are being compared, they are usually fixnums, so the user would still
use MEMQ or ASSQ.)

If MEMBER and ASSOC were changed to use EQL, every single use of them
would cease to work and have to be changed.  One might as well delete
these functions as change them so grossly, since their primary reason
for existence is compatibility with ancient tradition.

In fact, it would be better to eliminate them entirely from Common Lisp.
Then users would not actually need to change their code (since the Lisp
machine would still support them) unless the code was to be made portable.
In that case, they would change the code to use a generic sequence function,
which is merely what they would have to do anyway if MEMBER and ASSOC
are changed.