Maxima Manual: Операторы отношения

Next: Общие операторы, Previous: Арифметические операторы, Up: Операторы [Contents][Index]

### 5.6 Операторы отношения

Оператор: <
Оператор: <=
Оператор: >=
Оператор: >

  Символы `<` , `<=` , `>=` и `>` представляют отношения меньше, меньше или равно, больше или равно и больше, соответственно. Имена этих операторов есть `"<"` , `"<="` , `">="` и `">"`. Эти имена могут применяться в случае, если требуется имя функции или оператора.

  Данные операторы отношения являются бинарными. Конструкции типа `a < b < c` недопустимы в Maxima.

  Операторы отношения вычисляются до логических значений функциями `is` и `maybe`, и программными конструкциями `if`, `while` и `unless`. В других случаях операторы отношения не вычисляются или упрощаются до логических значений, хотя аргументы операторов отношения вычисляются (если вычисление не блокировано при помощи оператора кавычка).

  Если выражение отношения не может быть вычислено до логического значения `true` или `false`, то поведение `is` и `if` управляется глобальным флагом `prederror`. Если значение `prederror` равно `true`, то `is` и `if` вызывает ошибку. Если значение `prederror` равно `false`, то `is` возвращает `unknown` а `if` возвращает частично-вычисленное условное выражение.

  `maybe` всегда ведет себя так, если бы `prederror` равнялось `false`, а `while` и `unless` всегда ведут себя так, если бы `prederror` равнялось `true`.

  Операторы отношения не дистрибутивны по отношению к спискам и другим конструкциям.

  См. также `=` , `#` , `equal` и `notequal`.

  Примеры:

  Операторы отношения вычисляются до логических значений некоторыми функциями и программными конструкциями.

      (%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

  Во всех других случаях операторы отношения не вычисляются или упрощаются до логических значений, хотя их аргументы вычисляются.

      (%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]

Next: Общие операторы, Previous: Арифметические операторы, Up: Операторы [Contents][Index]