-- Special operator: if Represents conditional evaluation. Various forms of
if expressions are recognized.
if <cond_1> then <expr_1> else <expr_0> evaluates to <expr_1> if <cond_1> evaluates to
true, otherwise the expression evaluates to <expr_0>.
if <cond_1> then <expr_1> elseif <cond_2> then <expr_2> elseif ... else <expr_0> evaluates to <expr_k> if <cond_k> is
true and all preceding conditions are
false. If none of the conditions are
true, the expression evaluates to
else false is assumed if
else is missing. That is,
if <cond_1> then <expr_1> is equivalent to
if <cond_1> then <expr_1> else false, and
if <cond_1> then <expr_1> elseif ... elseif <cond_n> then <expr_n> is equivalent to
if <cond_1> then <expr_1> elseif ... elseif <cond_n> then <expr_n> else false.
The alternatives <expr_0>, ..., <expr_n> may be any Maxima expressions, including nested
if expressions. The alternatives are neither simplified nor evaluated unless the corresponding condition is
The conditions <cond_1>, ..., <cond_n> are expressions which potentially or actually evaluate to
false. When a condition does not actually evaluate to
false, the behavior of
if is governed by the global flag
true, it is an error if any evaluated condition does not evaluate to
false. Otherwise, conditions which do not evaluate to
false are accepted, and the result is a conditional expression.
Among other elements, conditions may comprise relational and logical operators as follows.
Operation Symbol Type
less than < relational infix less than <= or equal to relational infix equality (syntactic) = relational infix negation of = # relational infix equality (value) equal relational function negation of equal notequal relational function greater than >= or equal to relational infix greater than > relational infix and and logical infix or or logical infix not not logical prefix
There are also some inexact matches for
?? if to see them.
(%o1) true (%i2)