Category:Amazing Hopper: Difference between revisions

m
Line 4,684:
Ejemplo:
 
#include <stdiohopper.hhh>
#include <math.hh>
 
#context dividir por la raíz de 2
#define imprimeconunsalto {"\n"}print
Line 4,703 ⟶ 4,702:
El ejemplo anterior se expande a lo siguiente:
 
main:
{10,5}mul; gosub(dividirporlaraízde2)
emptystack?do{{"No puedo continuar por falta de datos "},throw(1000)},{"\n"}print
{0}return
.locals
dividirporlaraízde2:
{2},sqrt;postfix;div;postfix
back
 
Primero, multiplica 10 y 5; luego, se activa GOSUB (la declaración de #CONTEXT), porque en el stack hay un dato distinto de cero o vacío, y va al bloque en cuestión para realizar el cálculo. Al retornar, imprime el resultado.
 
Nota: si el resultado de la operación hubiese sido "0", GOSUB no se activa, e imprime "0".
 
 
==== #CONTEXT-FREE ====
543

edits