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.

Generalmente = se traduce como == si aparece en algún lugar dónde GEL espera una condición, como la condición «if». Por ejemplo

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

son lo mismo en GEL. Sin embargo, debería utilizar == o := cuando se quiere comparar o asignar, respectivamente, si quiere que su código sea fácil de leer. Además le ayuda a evitar errores.

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.