Maxima and Lisp



Currently I am porting code from maple to maxima.  This code makes heavy
use of sets and lists.  Currently the current implementation of sets
uses maxima lists.  If I take advantage of this, ie using listp instead
of setp, or use [] instead of setify([]), then if the implementation
of sets changes, my code breaks.  Furthermore if a faster implementation
is built, I dont have to change my code.  There are many places where
I use functions that have direct analogs in lisp, such as cons, endcons,
member, etc.  Dr. Willis has also written several functions for my porting
effort in lisp, such as polynomialp, which is tied to the internal
maxima representation.   However, I for one, find the maxima code
you wrote easier to understand than the lisp code, as the lisp code
is tied to the internal representation of maxima objects.  Also,
it is tied to internal maxima functions, which may prevent moving your
code to future versions of maxima if they ever change.
Dan Stanger