GEL is somewhat different from other languages in how it deals with multiple commands and functions.
In GEL you must chain commands together with a separator operator.
That is, if you want to type more than one expression you have to use
the ;
operator in between the expressions. This is
a way in which both expressions are evaluated and the result of the second one (or the last one
if there is more than two expressions) is returned.
Suppose you type the following:
3 ; 5
This expression will yield 5.
Detta kommer ibland att kräva parenteser för att göra det otvetydigt, särskilt om ;
inte är den översta primitiven. Detta skiljer sig något från andra programmeringsspråk där ;
terminerar uttryck, medan den i GEL faktiskt är en binär operator. Om du är bekant med pascal faller detta sig naturligt. Genius kan dock låta dig låtsas att den är en terminator i någon utsträckning. Om en ;
hittas i slutet på en parentes eller ett block kommer genius att lägga till ett null efter den som om du hade skrivit ;null
. Detta är användbart ifall du inte vill returnera ett värde från exempelvis en slinga, eller om du vill hantera returvärdet på annat sätt. Observera att detta kommer sakta ner koden något om det anropas för ofta eftersom det är en till operator inblandad.
Om du skriver uttryck i ett program måste du inte lägga till ett semikolon. I detta fall kommer genius helt enkelt att skriva ut returvärdet närhelst det exekverar uttrycket. Observera dock att om du definierar en funktion så är kroppen av funktionen ett enda uttryck.