[Maxima-commits] CVS: maxima/src simp.lisp,1.55,1.56



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
>