Complex system of equations



On Sun, 2011-05-15 at 19:42 -0500, Barton Willis wrote:

> (%i3) makelist(expand(subst(sk, map(lambda([s], rhs(s)-lhs(s)), [e1,e2,e3,e4]))),sk, args(sol));

Maxima 5.24.0 http://maxima.sourceforge.net
using Lisp CLISP 2.44.1 (2008-02-23)

I am new to maxima.  I tried breaking this expression down to understand
the parts.

I think the makelist() function substitutes the solution into the
initial equations to check.  At least the result seems to indicate so.

I think I understand the map sub-expression.
map(lambda([s], lhs(s)), [e1,e2,e3,e4]);
This defines a function with one argument s and executes it with the
argument [e1,e2,e3,e4];

If I do 
xx:map(lambda([s], lhs(s)), [e1,e2,e3,e4]);
makelist(expand(subst(sk, xx)),sk, args(sol));
The result is different.

It appears this is using some side effect of the syntax to substitute
the solution into the original equations.

Can someone please explain this syntax?  I looked at describe("subst");,
but, did not find enough to explain the syntax.

tomdean