I assume that member -> memq is an atomic operation to return to a previous
CVS.
And several people with experience with the Maxima code believe it to be
better to go back to memq.
You can, later, change memq to simp-flaggedp, if you determine that this is
how you want to spend your time,
and you are careful how you do it, only when appropriate.
The change I suggested would also help for (memq x '(mplus mtimes))
and some other situations.
RJF
> -----Original Message-----
> From: maxima-bounces at math.utexas.edu
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of Andreas Eder
> Sent: Tuesday, April 08, 2008 10:25 PM
> To: Barton Willis
> Cc: Maxima List
> Subject: Re: [Maxima] [Maxima-commits] CVS: maxima/src
> simp.lisp,1.55,1.56
>
> Barton Willis wrote:
>
> >Given all this, I think we should do member --> memq (again).
>
> Why? If you really think about it, then I guess we should
> introduce macros like simp-flaggedp as Stavros suggested:
>
> >(defmacro simp-flaggedp (x)
> > `(let ((cdarx (cdar ,x)))
> > (if cdarx
> > (or (eq (car cdarx) 'simp)
> > (member 'simp cdarx :test #'eq))
> > ;;Function call rarely called, so use a shorter but
> > ;; slower code sequence in this case rather than member
> > ;; which gives an inline loop
> > nil)))
>
> But for heavens sakedon't reintroduce memq again.
> What is it about memq that makes it so sacred?
> There is that perfectly goo common lisp function member that does
> everything that memq does and more.
>
> Andreas
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>