ev, subst, funmake, quote, apply ... argh!



On Dec 26, 2007 5:35 PM, dlakelan <dlakelan at street-artists.org> wrote:

> I understand now that 'err(a,b,c,d) is not the same as '(err(a,b,c,d))
> which was what was confusing me.  What exactly do I get when I type
> "'err(a,b,c)" ?? I don't know.


Yes, this is a difficult area, and our current solution (well, it's actually
the same as the 1975 solution...) is not perfect....

'f(...) is what is called a noun form. It represents the application of a
function to (evaluated!) arguments without actually calling the function.
The best-known cases are 'diff(y,x), 'limit(...), 'integrate(...),
'sum(...), etc. which are used both as input from users to indicate that an
operation *should not* be carried out explicitly and as output from Maxima
(though the ' is not normally displayed) to indicate that an operation
*could not* be carried out explicitly.

'( ... ) is a quoted expression.  It represents an expression none of which
is evaluated.

As for subst *vs.* ev, you have no choice if there are embedded functions
which need to be called -- you have to use ev.

          -s