Category:Amazing Hopper: Difference between revisions

m
Line 4,876:
Por ejemplo: enunciar el Teorema de Pitágoras, no es lo mismo que calcularlo. Cuando lo calculamos, seguimos un procedimiento semejante a éste:
 
"obtén el cuadrado del cateto mayor, y el cuadrado del cateto menor; luego, súmalos, y calcula su raíz cuadrada"
 
y eso es lo que hace HOPPER:
 
"{cateto mayor}pow by '2',{cateto menor}pow by'2',add,sqrt"
 
Esto es una ventaja, hasta cierto punto; es, también, la idea detrás del Proyecto Hopper: programar, en primera instancia, siguiendo una lógica más cercana a la "natural", pensando en una, no muy lejana, "programación hablada".
Line 4,895:
#hl ( (i+30)*M_PI/180 ), mov(resultado)
o su equivalente:
#hl ( resultado = (i+30)*M_PI/180 )
Line 4,945:
 
++i,--j,{i}mul by'j',plus '[i:end,j]get(a)', put(x)
 
¿Por qué se escribe solo una vez "[i:end,j]"? Porque basta con una declaración, para que quede disponible al resto del programa. De ahí que es necesario CLEARMARK.
 
Line 4,957:
x = y = log(x+y)^(log(x-y) )
 
p[2]=p[5]=p[7,1]=x=1000
Line 4,972:
r=(x:=(2+1))*2^(x-1)
}
 
Se calcula "2+1", se deja el resultado en "x", pero también se deja disponible para el resto del cálculo.
 
Line 5,004:
 
Todas las estructuras de control en #HIGH-LEVEL permiten anidamiento.
 
 
EJEMPLOS:
Line 5,019 ⟶ 5,018:
IF:
 
#hl{
if ( (i==0) && (log(j*10)>2) )
Line 5,026:
 
DO:
 
i=10
#hl{
Line 5,058 ⟶ 5,059:
 
Donde sí es muy práctico usar #HIGH-LEVEL, es en las expresiones lógicas, debido a que expanden a código HOPPER sin pérdida de optimización.
 
 
== DIRECTIVAS INLINE PARA #DEFN ==
543

edits