More on memq



This :test #'eq nonsense is really getting on my nerves.

The memq case is by far the most common use case of member in Maxima
code.  In mlisp.lisp (which I was recently reading), out of 88
occurrences of member, 1 had an eq test, and 1 had a default (eql)
test.

The funny thing is that in over 75% of #'eq cases, either the
tested-member was a symbol, or the list was a quoted list of symbols,
so a competent compiler would have required no explicit :test clause
at all, choosing eq automatically since for symbols it is equivalent
to eql and is more efficient. (Do any of our standard compilers handle
this case correctly?)

Oh yes, and there was one case with a carefully inserted eq-test which
was incorrect -- it should in principle have been an eql test (I don't
think that CL guarantees that (eq 0 0) = t).

Could we please restore memq (whether a macro or a function I don't
care) to these cases?  I thought we had a consensus on this a long
time ago.

              -s