Tabla de contenidos
GEL significa Lenguaje de Extensión de Genius. Éste es el lenguaje que se utiliza para escribir programas para Genius. Un programa en GEL es simplemente una expresión que se evalúa como un número, una matriz, o cualquier objeto en GEL. Por lo tanto, la Herramienta matemática Genius se puede utilizar como una simple calculadora o como una herramienta de investigación teórica muy potente. La sintaxis está pensada para suavizar lo más posible la curva de aprendizaje, especialmente para usarlo como calculadora.
Los valores en GEL pueden ser números, booleanos o cadenas. GEL también trata las matrices como valores. Los valores se pueden usar en cálculos, asignarse a variables y devolverse desde funciones, entre otros usos.
Los enteros son el primer tipo numérico en GEL. Los enteros se escriben de forma estándar.
1234
Las formas hexadecimales y octales se pueden indicar mediante la notación de C. Por ejemplo:
0x123ABC 01234
O bien puede indicar los enteros en una base arbitraria usando <base>\<número>
. Los dígitos mayores que 9 usan letras de manera similar a la forma hexadecimal. Por ejemplo, un número en base 23 podría escribirse:
23\1234ABCD
El segundo tipo numérico de GEL son los racionales. Los números racionales se obtienen dividiendo dos enteros. De modo que se puede escribir:
3/4
para obtener tres cuartos. Los racionales aceptan notación fraccionaria mixta. De modo que para obtener uno y tres décimos se podría indicar:
1 3/10
El siguiente tipo numérico es el de coma flotante. Estos se especifican de un modo muy similar a la notación en C. Puedes usar E
, e
o @
como el delimitador de exponente. Tenga en cuenta que usando el delimitador de exponente da un coma flotante incluso si no está la coma decimal en el número. Ejemplos:
1.315 7.887e77 7.887e-77 .3 0.3 77e5
Cuando Genius imprime un número en coma flotante siempre añade un ,0
incluso si el número está completo. Esto indica que los números en coma flotante se toman como cantidades imprecisas. Cuando un numero se escribe en notación científica, siempre será en coma flotante y, por tanto, Genius no imprime ,0
.
El último tipo de números en GEL son los números complejos. Puede escribir un número complejo como la suma de su parte real y su parte imaginaria. Para agregar la parte imaginaria, escriba una i
. Aquí hay algunos ejemplo de cómo escribir números complejos:
1+2i 8.01i 77*e^(1.3i)
Al introducir números imaginarios, deba haber un número delante de la i
. Si usa i
por sí sola, Genius lo interpretará como una referencia a la variable i
. Si necesita referirse a i
por sí sola, use 1i
en su lugar.
Para usar notación de fracciones mixtas con números imaginarios debe colocar las fracciones mixtas entre paréntesis (ej. (1 2/5)i
).
Genius también soporta valores booleanos nativos. Las dos constantes booleanas están definidas como true
y false
; estos identificadores se pueden utilizar como cualquier otra variable. Así mismo, puede utilizar los identificadores True
, TRUE
, False
y FALSE
como alias de las anteriores.
Puede usar un valor booleano o cualquier expresión que produzca un número o valor booleano en cualquier lugar donde se espera una expresión Booleana. Si Genius necesita evaluar un valor numérico como un valor booleano interpretará «0» como false
y cualquier otro valor como true
.
Además, puede efectuar operaciones con valores booleanos. Por ejemplo:
( (1 + true) - false ) * true
equivale a:
( (true or true) or not false ) and true
Solamente están soportadas la adición, la sustracción y la multiplicación. Si mezcla valores numéricos con booleanos en una expresión, los valores numéricos se convertirán a booleanos como se describió anteriormente. Esto significa que, por ejemplo:
1 == true
siempre se evaluará como true
dado que «1» siempre se convertirá a true
antes de compararlo con true
.
Al igual que los números y los booleanos, las cadenas en GEL se pueden almacenar como valores dentro de variables y pasárselas a funciones. Puede concatenar una cadena con otra cadena mediante el operador «+». Por ejemplo:
a=2+3;«El resultado es: »+a
creará la cadena:
El resultado es: 5
Puede usar secuencias de escape como en C tales como \n
, \t
, \b
, \a
y \r
. Para insertar los caracteres \
o "
en una cadena puede escaparlo precediéndolo de \
. Por ejemplo:
"Barra: \\ Comillas: \" Tabulaciones: \t1\t2\t3"
dará lugar a la cadena:
Barra: \ Comillas: " Tabulaciones: 1 2 3
. Tenga en cuenta, sin embargo, que cuando una función devuelve una cadena, los caracteres escapados se entrecomillan, por lo que la salida se puede usar como entrada de otra función. Si quiere imprimir la cadena como es (sin caracteres escapados), use las funciones print
o printn
.
Además, puede usar la función string
de la biblioteca para convertir cualquier cosa en una cadena. Por ejemplo:
string(22)
devolverá
"22"
. Las cadenas pueden compararse mediante los operadores ==
(igual), !=
(distinto) y <=>
(comparación).
Existe un valor especial llamado null
. No se permite efectuar operaciones sobre él y no se muestra nada cuando se devuelve este valor. Por lo tanto, null
es útil cuando no quiera ninguna salida de una expresión. El valor null
puede obtenerse como una expresión al escribir .
, la constante null
o nada. Nada referido a que si termina una expresión con un separador ;
, equivale a terminar la expresión con un separador seguido de null
.
Ejemplo:
x=5;. x=5;
Algunas funciones devuelven null
cuando no pueden devolver un valor o producen algún error. También se usa null
como un vector o matriz vacía o una referencia vacía.