Operadores de comparación

Los siguientes operadores de comparación comunes están soportados en GEL, y tienen el significado obvio: ==, >=, <=, !=, <>, <, >. Éstos devuelven los valores true o false. Los operadores != y <> son lo mismo y significan «no es igual a». GEL también permite utilizar el operador <=>, que devuelve el valor -1 si el lado izquierdo es menor, 0 si ambos lados son iguales, y 1 si el lado izquierdo es mayor.

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.

No todos los operadores de comparación (salvo el operador <=>, que se comporta de manera normal), son operadores binarios en el sentido estricto del concepto. De hecho, se pueden agrupar en el modo matemático usual, por ejemplo: (1<x<=y<5) es una expresión booleana legítima que significa lo que debería, es decir (1<x and x≤y and y<5)

Para construir expresiones lógicas utilice las palabras not, and, or, xor. Los operadores or y and son especiales pues evalúan sus argumentos de uno en uno, por lo que la técnica usual para implementar la evaluación condicional también funciona aquí. Por ejemplo, 1 or a=1 no ejecuta el comando a=1, pues el primer argumento es verdadero.