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.

Normalt översätts = till == om det förekommer någonstans där GEL förväntar sig ett villkor som i if-villkoret. Till exempel är

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

samma sak i GEL. Du bör dock använda == eller := då du vill jämföra respektive tilldela om du vill att din kod ska vara lätt att läsa och för att undvika misstag.

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).