als het om een commando of een naam zonder aanhalingstekens gaat".
Dezelfde procedure wordt gevolgd als een algebraische uitdrukking wordt
berekend. (Het enige verschil is dat de namen in algebraische
uitdrukkingen niet tussen aanhalingstekens gezet kunnen worden.)
Stel dat de variabele X de waarde 3 bevat en Y de waarde 4. Als u' X+Y"'
EVAL uitvoert, wordt 7 in het stapelgeheugen gezet. Daarbij gebeurt het
volgende:
1. De naam X wordt geévalueerd, zodat 3 in niveau 1 van het
stapelgeheugen komt.
2. Y wordt geévalueerd, zodat 4 op niveau 1 komt en 3 naar niveau 2
schuift.
3. + wordt geévalueerd, zodat de argumenten = en 4 uit het
stapelgeheugen genomen worden en het resultaat 7 berekend
wordt.
Stel nu dat de variabele X de waarde 3 bevat en de variabele T een
formele variabele is (geen waarde bevat). Alsu '#-T' EVAL uitvoert,
komt '3-T' in het stapelgeheugen te staan. Daarbij gebeurt het
volgende:
1. X wordt geévalueerd, zodat 3 in niveau 1 komt.
2. T wordt geévalueerd. Omdat T geen waarde bevat, komt alleen T
in niveau 1 en schuift = door naar niveau 2.
3. In dit geval gebruikt — de argumenten 3 en T uit het
stapelgeheugen. Omdat T een formele variabele is, zet — de
algebraische uitdrukking '2-T' in niveau 1.
Stapsgewijze evaluatie. Evaluatie is een stapsgewijs proces. Stel dat
'E+5' in A staat, 'X~2' in B staat en 3 in X staat.
(0) B [+] 5 [ENTER] [] A [STO
1:
[(1X[z)2 ENTER ( B [STO
IF CE I
3[] X [STO
VAR
Bereken 'JTHR*EBE'. Steeds levert evaluatie vanA 'E+5' op ende
evaluatievanB 'X-2'.
0&AXB
EVAL
1:
'[(B+3)*(X-2)'
IEITEI
138
8: Meer over algebraische objecten