Ответ в теме: Принципы построения программ на Prolog

      Комментарии к записи Ответ в теме: Принципы построения программ на Prolog отключены
#2293

Выражения языка пролог могут соединяться не только оператором ИЛИ, но и другими видами операторов — при этом программа также как в рассмотренном примере может быть представлена в виде дерева. При выполнении программы выполняется обход дерева слева направо. Особым поведением обладает оператор отсечения — он запрещает переходы по следующим дугам во всех операторах ИЛИ, расположенных выше в дереве.

if_then_else_example(X, Y):-
X < 10, X > 3, !, Y is 1; Y is 2.

Семантика Prolog-программ

Если при обходе дерева управление получит оператор отсечения, то стоящий выше оператор ИЛИ не сможет передать управление операции Y is 2. Такой вид оператора отсекает все альтернативные решения в дереве, стоящие выше. Однако он не распространяет свое действие на нижестоящие операторы ИЛИ, поэтому цель может возвращать несколько решений даже если содержит оператор отсечения.