The following standard comparison operators are supported in GEL and have the obvious meaning:
==
, >=
,
<=
, !=
,
<>
, <
,
>
. They return true
or
false
.
The operators
!=
and <>
are the same
thing and mean "is not equal to".
GEL also supports the operator
<=>
, which returns -1 if left side is
smaller, 0 if both sides are equal, 1 if left side is larger.
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.
All the comparison operators (except for the
<=>
operator, which
behaves normally), are not strictly binary operators, they can in fact
be grouped in the normal mathematical way, e.g.:
(1<x<=y<5
) is
a legal boolean expression and means just what it should, that is
(1<x and x≤y and y<5)
To build up logical expressions use the words not
,
and
, or
, xor
.
The operators or
and and
are
special beasts as they evaluate their arguments one by one, so the usual trick
for conditional evaluation works here as well. For example, 1 or a=1
will not set
a=1
since the first argument was true.