この小さなプログラムを考えてみましょう:
married(bill, hillary).
spouse(X, Y) :- married(X, Y); married(Y, X).
likes(X, Y) :- spouse(X, Y).
今、私は目標を評価したい
?- likes(X, Y).
X = bill
Y = hillary ?;
X = hillary
Y = bill
yes
バックトラック時にこの対称関係の繰り返しを防ぎ、目標の対称性を維持する方法はあり?- likes(hillary, X).
ますか?