programming in lisp or maxima



> I am starting to write routines in maxima for my research
> (mainly in dynamical  systems).  So far these routines are very
> simple and they have been written in the maxima language.
>
>  I would like some opinions from others on the pros and cons of
>  writing routines for use in maxima directly in lisp vs. writing them
>  in maxima.

Despite the various imperfections in the Maxima language (which I've
talked about a lot in the past), I still think it is a much more
suitable language for writing mathematical routines, if only for the
fact that you can use nice infix notation.

There are, though a few cases where I'd consider using Lisp instead:

1) If you are a hardened Lisp hacker who is very comfortable in the
Lisp world, go with Lisp.  But keep in mind that if you interface with
Maxima internals, they are written in rather archaic style, with no
object orientation, lots of global variables, lots of side effects,
poor documentation, etc.

2) If you need to write complicated algorithms where you use special
data structures, you should probably use Lisp.  For example, if you
want to work algorithmically with graphs and the like, you should
probably use Lisp.

3) If you want to write simplification routines beyond the fairly
simple ones you can write using the pattern-matching facility, you
should probably use Lisp.

I'd be interested to hear others' thoughts.

           -s