Table of Contents
GEL znamená Genius Extension Language (rozšiřující jazyk Genius). Jedná se o jazyk, ve kterém píšete programy v kalkulátoru Genius. Program v jazyce GEL je jednoduše výraz, který je vyhodnocen jako číslo, matice nebo nějaký jiný objekt v GEL. Matematický nástroj Genius tak může sloužit jako jednoduchý kalkulátor a nebo jako mocný nástroj pro teoretický vědecký výzkum. Cílem syntaxe je, aby byla snadná na naučení, jak jen to jde, zejména pro používání aplikace jako kalkulačky.
Hodnotami v jazyce GEL mohou být čísla, pravdivostní hodnoty nebo řetězce. GEL zachází jako s hodnotami i s maticemi. Hodnoty mohou být mimo jiných věcí použity k výpočtům, přiřazovány do proměnných a vraceny z funkcí.
Integers are the first type of number in GEL. Integers are written in the normal way.
1234
Hexadecimal and octal numbers can be written using C notation. For example:
0x123ABC
01234
Or you can type numbers in an arbitrary base using <base>\<number>
. Digits higher than 10 use letters in a similar way to hexadecimal. For example, a number in base 23 could be written:
23\1234ABCD
The second type of GEL number is rationals. Rationals are simply achieved by dividing two integers. So one could write:
3/4
to get three quarters. Rationals also accept mixed fraction notation. So in order to get one and three tenths you could write:
1 3/10
The next type of number is floating point. These are entered in a similar fashion to C notation. You can use E
, e
or @
as the exponent delimiter. Note that using the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
1.315
7.887e77
7.887e-77
.3
0.3
77e5
When Genius prints a floating point number it will always append a
.0
even if the number is whole. This is to indicate that
floating point numbers are taken as imprecise quantities. When a number is written in the
scientific notation, it is always a floating point number and thus Genius does not
print the .0
.
The final type of number in GEL is the complex numbers. You can enter a complex number as a sum of real and imaginary parts. To add an imaginary part, append an i
. Here are examples of entering complex numbers:
1+2i
8.01i
77*e^(1.3i)
Při zadávání imaginárních čísel musí číslo vždy předcházet před i
. Pokud byste použili samotné i
, Genius by se k němu stavěl, jako k odkazu na proměnnou i
. Pokud potřebujete použít právě i
, použijte místo toho 1i
.
Pokud chcete u imaginárních čísel použít notaci složených zlomků, musíte složený zlomek uzavřít do závorek, např. (1 2/5)i
.
Genius také nativně podporuje pravdivostní hodnoty (boolean). Jsou definovány dvě pravdivostní konstanty, true
(pravda) a false
(nepravda). Tyto identifikátory mohou být použity stejně jako jiné proměnné. Případně můžete použít i varianty True
, TRUE
, False
a FALSE
.
Všude, kde je očekáván pravdivostní výraz, můžete použít pravdivostní hodnotu nebo libovolný výraz, jehož výsledkem je číslo nebo pravdivostní hodnota. V případě, že má Genius vyhodnotit číslo jako pravdivostní hodnotu, pak je nula brána jako false
a všechna ostatní čísla jako true
.
In addition, you can do arithmetic with Boolean values. For example:
( (1 + true) - false ) * true
is the same as:
( (true or true) or not false ) and true
Only addition, subtraction and multiplication are supported. If you mix numbers with Booleans in an expression then the numbers are converted to Booleans as described above. This means that, for example:
1 == true
always evaluates to true
since 1 will be converted to true
before being compared to true
.
Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. You can also concatenate a string with another value using the plus operator. For example:
a=2+3;"The result is: "+a
will create the string:
The result is: 5
You can also use C-like escape sequences such as \n
,\t
,\b
,\a
and \r
. To get a \
or "
into the string you can quote it with a \
. For example:
"Slash: \\ Quotes: \" Tabs: \t1\t2\t3"
will make a string:
Slash: \ Quotes: " Tabs: 1 2 3
Do note however that when a string is returned from a function, escapes are
quoted, so that the output can be used as input. If you wish to print the
string as it is (without escapes), use the
print
or
printn
functions.
In addition, you can use the library function string
to convert anything to a string. For example:
string(22)
will return
"22"
Strings can also be compared with ==
(equal), !=
(not equal) and <=>
(comparison) operators
Existuje speciální hodnota nazývaná null
. Nelze s ní provádět žádné operace a když je vrácena, není nic vypsáno. Proto je hodnota null
užitečná, když nechcete z výrazu získat žádný výstup. Hodnotu null
získáte tak, že napíšete výraz .
, konstantu null
nebo nic. Tím se nemyslí nic jiného, než že když výraz zakončíte oddělovačem ;
, je to stejné, jako byste jej zakončili oddělovačem následovaným null
.
Example:
x=5;.
x=5;
Některé funkce vrací null
v případě, že nelze vrátit žádnou hodnotu nebo nastane chyba. null
se rovněž používá jako prázdný vektor, prázdná matice nebo prázdná reference (odkaz).