Robert Dodier wrote:
> On 4/5/08, Barton Willis <willisb at unk.edu> wrote:
>
>
>> Oh sure, every little improvement helps. But given this data, why do we
>> worry so much about memq? Is memq a big problem for other Lisp versions?
>>
>
> Well, there is a better reason for replacing MEMQ with MEMBER,
> which is that MEMBER is a CL function and MEMQ is not.
>
So what? I use (defun square (x) (* x x)) all the time. Does that make
it bad? MEMQ was perfectly fine. Now when I look at the code I have to
ask why is it member with :test 'eq and not the default 'eql? What
makes it special? When MEMQ is used it's pretty clear that's what is
wanted.
> There are many other trivial reimplementations of CL functions
> to which the same applies. Yes, I know that Maxima was
> originally written in a non-CL Lisp. That's fine, however, we
> needn't perpetuate its idiosyncrasies forever. I am hoping that
>
I don't see MEMQ as an idiosyncrasy. If you want to get rid of those,
replace the &aux stuff, or ((lambda (foo) ...) args).
> we can bring more developers on board, and towards that end,
> it helps to replace non-CL functions by their CL equivalents.
>
>
>
I don't see how that helps either. The real idiosyncrasies would be
nice, but perfectly nice functions like MEMQ don't matter.
And if you really want more developers, using something besides CL will
probably help more. :-(
Or make the maxima language better. Conceptually, maxima ought to be
able to do everything. If not, we should make it so.
Surely there are much better things for us to do than replace memq with
member and argue about it. :-) I won't say any more about it. Let's go
on and do better things!
Ray