eval=evil? was remvalue



Dear Richard,

The example works just as well  (or should I say, just as bad).
without eval

h(s, t) := subvar(s, t);


h(t,1)
t evaluates to 1
Improper name or value in functional position.
#0: h(s=t,t=1)
 -- an error.  To debug this try debugmode(true);


Of course I understand why this happens. But my point is that maxima
code is ***extremely fragile***.
With some some small changes to the interpreter maxima could be lot more
robust.

Basically the interpreter should internally replace parameters and local
variables by unique
symbols. This is what any language I know of does.

Michel