Логические операторы (AND, OR, NOT, XOR)
Логические операторы создают свойства, которые рассматривают свои операнды как логические значения класса BOOLEAN, и возвращаемым значением которых также является значение класса BOOLEAN. Если значение операнда логического оператора не равно NULL, то операнд рассматривается как значение TRUE класса BOOLEAN, иначе NULL. Результат всегда равен либо TRUE, либо NULL, но никогда не FALSE.
В платформе на данный момент поддерживаются следующие логические операторы:
| Оператор | Название | Описание | Пример | Результат |
|---|---|---|---|---|
AND | Коньюнкция | Принимает два операнда на вход, возвращает TRUE, если оба операнда не NULL | TRUE AND TRUE | TRUE |
OR | Дизьюнкция | Принимает два операнда на вход, возвращает TRUE, если один из операндов не NULL | NULL OR TRUE | TRUE |
NOT | Отрицание | Принимает один операнд на вход, возвращает TRUE, если операнд NULL | NOT TRUE | NULL |
XOR | Исключение | Принимает два операнда на вход, возвращает TRUE, если ровно один из операндов не NULL | TRUE XOR TRUE | NULL |
При более чем двух операндах XOR возвращает TRUE, если нечётное число операндов не равно NULL.
Язык
Описание синтаксиса логических операторов.
Примеры
likes = DATA BOOLEAN (Person, Person);
likes(Person a, Person b, Person c) = likes(a, b) AND likes(a, c);
outOfInterval1(value, left, right) = value < left OR value > right;
outOfInterval2(value, left, right) = NOT (value >= left AND value <= right);