Изучая алгоритм работы интерпретатора Пролога, вы познакомились с тем, как работает механизм возврата (бектрекинг) в Прологе. Процессом возврата можно управлять. Для этого предназначен системный предикат отсечение (!). Он позволяет сокращать пространство поиска решений при возврате. Синтаксически использование отсечения в правиле выглядит как вхождение целевого утверждения с предикатом "!", не имеющим аргументов. Например:
'значение'(Х,Y,Z,V):-
'калории'(Х,Е), 'калории'(Y,Р), 'калории'(Z,D),
!, /* Знак отсечения */
V is E+P+D.
Как целевое утверждение этот предикат «!» всегда согласуется с базой знаний и не может быть вновь согласован.
|