Subject: If then else and unevaluated conditionals
From: Michel Van den Bergh
Date: Tue, 30 Jan 2007 08:50:11 +0100
>
> Here I agree with you Robert -- being able to manipulate expressions
> as programs and programs as expressions is useful and powerful in
> Maxima -- and in fact I think we've only scratched the surface of the
> possibilities. It works quite smoothly for side-effect-free
> mathematical expressions, but once you have side-effects and errors,
> things get messier. For example, consider
>
> x : if a>0 then 1 else 0
>
Side effects are precisely the point. A statement like
x:x+1
is easy to understand conceptually if you think of x as a variable
containing a maxima expression (I would prefer to write @x).
It becomes much harder to understand if you view x itself as
a maxima expression. Then you have to view certain maxima
symbols as being bound to expresssions. But this binding
cannot be transitive (as it would be in mathematics).
Consider
ev(x);
ev(ev(x));
...
Michel