私は、その目標のいずれかが証明可能である場合に「真」と評価されるPrologで述語を作成する方法を知っています。Prolog述語は2つの目標のブールORとして定義されていますか?
私はこのプログラムがあります。私が入力した場合、プロローグにそれを相談した後
adjacent(place1, place2).
distance(X, Y, 1) :-
adjacent(X, Y) ; adjacent(Y, X).
を:
> distance(place1, place2, 1)
私はこの出力を受け取る:
true;
false.
場合、私は思ったんだけど隣接する(X、Y)または隣接する(Y、X)のいずれかが真であれば、ただ一つの答えを返す距離述語を作る方法があります。証明可能です。
この投稿の中に何か混乱があったら、私はPrologをよく理解していませんが、うまくいけば、この質問は理解できます。ありがとう。