Subject: [Newbie] problem with conditional expression
From: Robert Dodier
Date: Thu, 22 Mar 2007 08:27:42 -0700
On 3/21/07, Richard Fateman <fateman at cs.berkeley.edu> wrote:
> There is a major difference between program control flow and expression
> evaluation.
All well and good. With this in mind let's return to our canonical example.
Why should
plot2d (if x > 0 then 1 else 0, [x, -1, 1]);
trigger an error?
> Saying that you treat this the same as P+1 is
> obviously not a solution.
Obviously not. The point is even simplifying arithmetic expressions
can have side effects. Yet that doesn't seem to stop us from allowing
Maxima to simplify arithmetic. It needn't stop us from simplifying
or evaluating conditional expressions.
> > > Alternative syntax (e.g. such as is used in Tilu output) or something else,
> > > like guarded commands, could make sense. Key words like "incase" and
> > > "provided/ when" are used by tilu.
> > > http://www.cs.berkeley.edu/~fateman/tilu.examp2.html
> >
> > Is there a way to define incase and provided/when without using if ?
>
> No. If they could have been defined in terms of "if" I would have used "if".
Really? The only discussion of provided/when on that page says
"In particular it requires checking if a*b^2<0 or ..."
There's no discussion of incase.
FWIW
Robert