En este ejemplo modificamos el programa FUNCa de modo que la salida
incluya no solamente la función evaluada, pero también una copia de la
entrada con una etiqueta.
FUNCa a la pantalla:
"Enter a: " {" :a: " {2 0} V } INPUT OBJ→ → a
«
'2*a^2+3'
Modificarlo de esta manera:
"Enter a: " {" :a: " {2 0} V } INPUT OBJ→ → a
«
'2*a^2+3' EVAL "F" →TAG a SWAP» »
(Recordar que la función SWAP está disponible usando „°@) S TACK @SWAP@).
Almacenar el programa nuevamente dentro de FUNCa usando „ @FUNCa.
Después, activar el programa presionando @FUNCa . Escriba un valor de 2
cuando se solicite, y presione `. Los resultados ahora son dos números
marcados con etiqueta a:2. en el nivel 2 de la pantalla, y F:11. en el
nivel 1 de la pantalla.
Nota: Como utilizamos una secuencia de entrada para conseguir el valor de
los datos de entrada, la variable local almacena realmente un valor marcado
con etiqueta (:a:2, en el ejemplo arriba). Por lo tanto, no necesitamos
marcarla con etiqueta en la salida. Todo lo que necesitamos hacer es colocar
una a antes de la función SWAP en el subprograma arriba, y la entrada
marcada con etiqueta será colocada en la pantalla. Debe precisarse que, en
la ejecución del cálculo de la función, la etiqueta de la entrada marcada con
etiqueta se elimina automáticamente, y solamente su valor numérico está
utilizado en el cálculo.
Para ver la operación de la función FUNCa, gradualmente, usted podría
utilizar la función de DBUG como sigue:
³ @FUNCa `
„°LL @) @ RUN@ @@DBG@
@SST
@
↓
@SST
@
↓
Use ‚ @FUNCa para recobrar el contenido de
NUM "F" →TAG » »
Copia nombre del programa al nivel 1
Comenzar DBUG
Resulta: "Enter a:"
Resulta: {"
a:" {2 0} V}
«
«
Página 21-37