Operadores relacionales (Manual de Maxima 5.45.0)

Siguiente: Operadores lógicos, Anterior: Operadores aritméticos, Subir: Operadores [Índice general][Índice]

### 6.3 Operadores relacionales

Operator: <
Operator: <=
Operator: >=
Operator: >

  Los símbolos `<`, `<=`, `>=` y `>` representan menor que, menor o igual que, mayor o igual que y mayor que, respectivamente. Los nombres de estos operadores son `"<"` `"<="` `">="` y `">"`, que pueden aparecer allá donde se requiera el nombre de una función u operador.

  Estos operadores relacionales son todos operadores binarios. Maxima no reconoce expresiones del estilo `a < b < c`.

  Las expresiones relacionales devuelven valores booleanos haciendo uso de las funciones `is` o `maybe`, así como de las sentencias condicionales `if`, `while` y `unless`. Las expresiones relacionales no se evalúan de otra manera, aunque sus argumentos sí sean evaluados.

  Cuando una expresión relacional no pueda ser evaluada a `true` o `false`, el comportamiento de `is` y de `if` estará controlado por la variable global `prederror`. Si `prederror` toma el valor `true`, `is` y `if` emiten un mensaje de error. Si `prederror` toma el valor `false`, `is` devuelve `unknown` y `if` devuelve una expresión condicional parcialmente evaluada.

  `maybe` se comporta siempre como si `prederror` fuese `false`, al tiempo que `while` y `unless` se comportan siempre como si `prederror` fuese `true`.

  Los operadores relacionales no se distribuyen sobre listas ni sobre cualesquiera otros tipos de estructuras de datos.

  Véanse también `=`, `#`, `equal` y `notequal`.

  Ejemplos:

  Las expresiones relacionales se reducen a valores booleanos a través de ciertas funciones y sentencias condicionales.

      (%i1) [x, y, z] : [123, 456, 789];
      (%o1)                    [123, 456, 789]
      (%i2) is (x < y);
      (%o2)                         true
      (%i3) maybe (y > z);
      (%o3)                         false
      (%i4) if x >= z then 1 else 0;
      (%o4)                           0
      (%i5) block ([S], S : 0,
                   for i:1 while i <= 100 do S : S + i, return (S));
      (%o5)                         5050

  Las expresiones relacionales no se evalúan de otra manera, aunque sus argumentos sí sean evaluados.

      (%o1)                    [123, 456, 789]
      (%i2) [x < y, y <= z, z >= y, y > z];
      (%o2)    [123 < 456, 456 <= 789, 789 >= 456, 456 > 789]
      (%i3) map (is, %);
      (%o3)               [true, true, true, false]

Siguiente: Operadores lógicos, Anterior: Operadores aritméticos, Subir: Operadores [Índice general][Índice]