Jämförelseoperatorer

Följande standardoperatorer för jämförelse stöds i GEL och har de uppenbara betydelserna: ==, >=, <=, !=, <>, <, >. De returnerar true eller false. Operatorerna != och <> är samma sak och betyder ”är inte lika med”. GEL stöder även operatorn <=> som returnerar -1 om vänstersidan är mindre, 0 om båda sidor är lika, 1 om vänstersidan är större.

Normally = is translated to == if it happens to be somewhere where GEL is expecting a condition such as in the if condition. For example

if a=b then c
if a==b then c

are the same thing in GEL. However you should really use == or := when you want to compare or assign respectively if you want your code to be easy to read and to avoid mistakes.

Alla jämförelseoperatorerna (förutom <=>-operatorn, vilken beter sig normalt) är inte strikt binära operatorer, de kan i själva verket grupperas på det vanliga matematiska sättet, t.ex. så är (1<x<=y<5) ett giltigt booleskt uttryck och betyder precis vad det borde, det vill säga (1<x och x≤y och y<5)

Använd orden not, and, or, xor för att bygga upp logiska uttryck. Operatorerna or och and är speciella eftersom de evaluerar sina uttryck ett efter ett, så det vanliga tricket för villkorlig evaluering fungerar även här. Till exempel kommer 1 or a=1 inte att ställa in a=1 eftersom det första argumentet var true (sant).