V jazyce GEL jsou podporovány následující porovnávací operátory a mají obvyklý význam: ==
, >=
, <=
, !=
, <>
, <
, >
. Vrací true
nebo false
. Operátory !=
a <>
jsou stejné a znamenají „není rovno“. GEL podporuje také operátor <=>
, který vrací -1, když je levá strana menší, 0, když jsou si strany rovny, a 1, když je levá strana větší.
Pokud se =
vyskytne někde, kde GEL očekává podmínku, jako v podmínce if, je převedeno na ==
. Například
if a=b then c if a==b then c
jsou v jazyce GEL totéž. Ale jestli chcete, aby váš kód byl dobře čitelný a abyste se vyvarovali chyb, měli byste ve skutečnosti používat jako operátor porovnání nebo přiřazení ==
nebo :=
.
Všechny operátory porovnávání (vyjma operátoru <=>
, který se chová normálně) nejsou striktně binární operátory, takže mohou být seskupovány běžným matematickým způsobem, např. (1<x<=y<5
) je platný pravdivostní výraz a znamená přesně to, co by měl, což je (1<x a x≤y a y<5)
Pro sestavení logických výrazů používejte slov not
, and
, or
a xor
. Operátory or
a and
jsou zrádné v tom, že vyhodnocují své argumenty jeden po druhém, takže zde funguje obvyklý trik pro podmíněné vyhodnocení. Například 1 or a=1
nikdy nenastaví a=1
, protože první argument je pravdivý.