Sintaxis de nivel superior

Cuando se indroduce una sentencia en el nivel más alto, la sintaxis es distinta a la que se utiliza cuando se introduce entre paréntesis o dentro de una función. En el nivel más alto la tecla «Intro» tiene el mismo efecto que al pulsarla en la línea de comandos. Piense en un programa como una secuencia de líneas introducidas en la línea de comandos. En particular, no necesita introducir el separador al final de la línea (salvo que sea parte de varias sentencias dentro de paréntesis).Cuando una sentencia no termina con un seaparador en su nivel más alto, el resultado se mostrará después de su ejecución.

Por ejemplo,

function f(x)=x^2
f(3)

imprimirá primero el resultado de las configuraciones una función (una representación de la función, en este caso (`(x)=(x^2))) y entonces el esperado 9. Para impedir esto, introduzca un separador después de la definición de la función.

function f(x)=x^2;
f(3)

Si necesita poner un separador dentro de su función debe de ir entre paréntesis. Por ejemplo:

function f(x)=(
  y=1;
  for j=1 to x do
    y = y+j;
  y^2
);

El siguiente código, aunque funcione bien en la función, puede producir un error al introducirlo en el nivel más alto de un programa.

if Algo() then
  HacerAlgo()
else
  HacerOtraCosa()

El problema es que, después que la Herramienta Matemática Genius ve el caracter de final de línea después de la segunda línea, la aplicación decidirá que ya se a completado la sentencia y la ejecutará. Cuando se termine la ejecución, la Herramienta Matemática Genius continuará con la siguiente línea y producirá un error al leer la sentencia else. Utilice paréntesis para evitar esto. La Herramienta Matemática Genius no estará satisfecha hasta que todos los paréntesis estén cerrados.

if Algo() then (
  HacerAlgo()
) else (
  HacerOtraCosa()
)