剪下(刪除選擇點)
有時希望防止 Prolog 回溯到替代解決方案。程式設計師可以使用的基本工具是切割運算子,以阻止序言繼續進行其回溯。考慮以下。
% (percent signs mean comments)
% a is the parent of b, c, and d.
parent(a,b).
parent(a,c).
parent(a,d).
這裡謂詞 parent/2
不止一次成功
?- parent(a,X).
叫做。為了阻止 prolog 在找到第一個解決方案之後搜尋更多解決方案,你會使用 cut 操作符,就像這樣。
?- parent(a,X), !.
這將使 X 等於 b(因為它是第一個可能的解決方案)並且不再尋找解決方案。