Evaluate an object, recursively
| Input Stack | Output Stack | |||
|---|---|---|---|---|
| O | → | see list under Description | ||
| Level 1 | → | Level n | … | Level 1 |
| Type | Operator | |
| Parallel list processing | Yes, but specific group is determined by the object being evaluated | |
| Affected by flags | -70 | Global autosimplification rules |
| -71 | Application of Group 1 autosimplification rules | |
| -72 | Application of Group 2 autosimplification rules | |
| -73 | Application of Group 3 autosimplification rules | |
| -74 | Application of Group 4 autosimplification rules | |
| -75 | Application of Group 5 autosimplification rules | |
| -76 | Application of Group 6 autosimplification rules | |
| -77 | Application of Group 7 autosimplification rules | |
| -78 | Application of Group 8 autosimplification rules | |
| -103 | Complex results | |
The EVAL command evaluates the object on the top level of the stack. Evaluation occurs recursively.
The effect of the evaluation and the resulting output depends on the type of object being evaluated, as summarized by the following list.
EVAL recalls the content of the variable.EVAL calls the content of a variable:EVALuated;EVALuated;EVAL enters each object in the program:EVAL enters each object in the expression:EVALuated;XEQted;EVAL puts them on the stack.EVAL enters each object in the list:EVALuated according above mentioned rules.
As a final step, EVAL will perform numerical simplification according to the status of flags from -70 to -78.
This command is only partially compatible with userRPL.
In particular:
EVAL enters any object in the list, then:EVALuated;EVALuated;XEQted;while in newRPL, parallel list processing is performed.
If the following commands are executed
2: 6.28 1: 'TWOPI' …………………………………………………………………………………… STO
2: « TWOPI * » 1: 'CIRCUM' …………………………………………………………………………………… STO
then the command
2: 2 1: 'CIRCUM' …………………………………………………………………………………… EVAL
will perform the following steps:
CIRCUM (a global name) is EVALuated;« TWOPI * » (a program) is EVALuated;TWOPI, the first object (a global name) in the program is EVALuated;6.28 (a real number) is put on the stack;Resulting in
1: 12.56 ……………………………………………………………………………………
The command
1: { '16' √ }
……………………………………………………………………………………
EVAL
will perform the following steps:
'16' (a symbolic expression) is EVALuated;16 (a real number) is put on the stack;Resulting in
1: { 4. }
……………………………………………………………………………………
| Operator | Short Description | |
|---|---|---|
| Evaluation operators: | ||
| EVAL1 | Evaluate one level | NEW |
| EVAL | Evaluate full depth | |
| XEQ | Execute | NEW |
| →NUM | Compute numeric result | |
| Test operators: | ||
| == | Equality test | |
| ≠ | Not equal test | |
| < | Less than test | |
| ≤ | Less than or equal test | |
| > | Greater than test | |
| ≥ | Greater than or equal test | |
| CMP | Comparison test (<0 if A<B, 0 if A==B, >0 if A>B) | NEW |
| SAME | Comparison test, true if objects are the same | |
| ISTRUE | True test | NEW |
| Logical operators: | ||
| AND | Logical AND | |
| OR | Logical OR | |
| XOR | Logical XOR | |
| NOT | Logical NOT | |
| Mathematic operators: | ||
| + | Addition | |
| - | Subtraction | |
| * | Multiplication | |
| / | Division | |
| ^ | Power | |
| XROOT | Root | |
| INV | Inverse | |
| NEG | Negate/change sign | |
| ABS | Magnitude or absolute value | |