1

我在序言中有一个问题。这里是知识库。

loves(vincent,mia).
loves(marcellus,mia).
loves(pumpkin,honey_bunny).
loves(honey_bunny,pumpkin).

jealous(X,Y) :-
   loves(X,Z),
   loves(Y,Z).

这是来自“ Learn Prolog Now ”一书。现在,如果我进行查询?- jealous(marcellus,W). ,它会返回,W = vincent 但如果我给出查询?- jealous(vincent,W). ,则返回结果是W=vincent所以这意味着 vincent 嫉妒自己,但 marcellus 并不嫉妒自己。为什么答案不一样?我在 Ubuntu Linux 中使用 swipl,它位于 winxp 上的 VirtualBox 中。我是 Prolog 的初学者。

谢谢

4

1 回答 1

2

W = vincent在查询?- jealous(marcellus,W). 类型;而不是答案之后Enter ,您将得到W = marcellus. You must add the fact that X \= Yin jealous/2.

于 2012-10-06T08:06:03.663 回答