0

これは非常に些細な Prolog ナレッジ ベースです。

spouse(bill,cheryl).
married(X,Y) :- spouse(X,Y).
married(X,Y) :- spouse(Y,X).

次のクエリを実行しました。答えが正しい名前 (のみ) である場合もあれば、正しい名前で「false」である場合もあることに注意してください。

1 ?- married(bill,X).
X = cheryl ;
false.

2 ?- married(cheryl,X).
X = bill.

3 ?- married(X,bill).
X = cheryl.

4 ?- married(X,cheryl).
X = bill ;
false.

誰かがこの一見一貫性のない動作を説明できますか? 前もって感謝します。

4

1 に答える 1