Документация на documentation.lsfusion.org скоро станет недоступной, используйте, пожалуйста, https://docs.lsfusion.org/ru.
Логические операторы создают свойства, которые рассматривают свои аргументы как логические значения класса 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 |
Язык
Описание синтаксиса логических операторов.
Примеры
1
2
3
4
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);