Appendix B: Technical Reference 916
The indirection operator (#) converts a string to a variable or function name.
For example, #(“x”&”y”&”z”) creates the variable name xyz. Indirection also
allows the creation and modification of variables from inside a program. For
example, if 10!r and “r”!s1, then #s1=10.
Post operators are operators that come directly after an argument, such as
5!, 25%, or 60ó15' 45". Arguments followed by a post operator are
evaluated at the fourth priority level. For example, in the expression 4^3!, 3!
is evaluated first. The result, 6, then becomes the exponent of 4 to yield
4096.
Exponentiation (^) and element-by-element exponentiation (.^) are
evaluated from right to left. For example, the expression 2^3^2 is evaluated
the same as 2^(3^2) to produce 512. This is different from (2^3)^2, which is
64.
To enter a negative number, press · followed by the number. Post
operations and exponentiation are performed before negation. For example,
the result of ëx
2
is a negative number, and ë9
2
=ë81. Use parentheses to
square a negative number such as (ë9)
2
to produce 81. Note also that
negative 5 (ë5) is different from minus 5 (ì5), and ë3! evaluates as ë(3!).
The argument following the “with” (|) operator provides a set of constraints
that affect the evaluation of the argument preceding the “with” operator.
Indirection
Post Operators
Exponentiation
Negation
Constraint (|)