Hello,
I'm looking at maxima source code, and the way maxima expressions are
written in lisp.
If I'm right, upon startup maxima runs cl-user::run in init-cl.lisp,
then macsyma-top-level in macsys.lisp, then for each command entered,
continue, and toplevel-macsyma-eval, and ultimately meval.
Then, I can use meval on maxima expressions written as list, and with
a: ...;
:lisp $a
I can see how expression are coded.
Now the question:
expression are often of the form
((op simp) arg ...)
However, I can run meval simply on '(op arg ...), and hte result seems
to be the same.
So what's the difference ?
Also, with for example (meval '($factor (mplus 1 $x (mtimes $x $x)
(mtimes $x $x $x))))
I get forms with (op simp factored), (op simp irreducible) and (op simp
ratsimp).
How does maxima work with symbols added to the operator ?
Also, when trying
a:'expand((x+y)^2);
:lisp $a
I get (%expand simp) instead of ($expand simp). What's the difference ?
Finally, is there some documentation about maxima internals ?
Jean-Claude Arbaut