> Is it possible to write the pop and push macros that are in the
> commercial macsyma in lisp, for maxima, or does it have to be done
> using buildq?
The advantage of using an MMacro (::= definition -- BuildQ is just a
convenient utility function for writing MMacros which you are never
required to use) is that (a) you stay entirely within the Maxima
language and (b) you don't need to worry about Translate. Since macros
by definition are expanded at compile time, presumably the performance
disadvantage of writing them in the Maxima language doesn't much matter.
But if you're like me, you might prefer writing in Lisp simply because
you prefer it as a language.
The disadvantage of writing your Pop and Push macros as mfexpr*'s in
Lisp is they will not translate into Lisp reasonably in the Translate
package. But they will run faster interpretively -- does that matter?
So what are the semantics of commercial Macsyma's Pop and Push? What
are the legal l-values?
-s