Логические операторы (AND, OR, NOT, XOR)
Логические операторы создают свойства, которые рассматривают свои аргументы как логические значения класса BOOLEAN
, и возвращаемым значением которых также является значение класса BOOLEAN
. Если значение аргумента логического оператора не равно NULL
, то аргумент рассматривается как значение TRUE
класса BOOLEAN
, иначе NULL
.
В платформе на данный момент поддерживаются следующие логические операторы:
Оператор | Название | Описание | Пример | Результат |
---|---|---|---|---|
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 |
Язык
Описание синтаксиса логических операторов.
Примеры
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);