我想写一个 Prolog 谓词,当两个人有相同的爱好时返回 true,而不使用否定。我有以下数据库:
likes(john,movies).
likes(john,tennis).
likes(john,games).
likes(karl,music).
likes(karl,running).
likes(peter,swimming).
likes(peter,movies).
likes(jacob,art).
likes(jacob,studying).
likes(jacob,sleeping).
likes(mary,running).
likes(mary,sleeping).
likes(sam,art).
likes(sam,movies).
我想出了以下谓词:
same_hobby(X,Y) :-
likes(X,Z),
likes(Y,Z).
X
然而,这个谓词在equals时也是正确的Y
,我不希望这样。谁能帮我找到解决方案?一个小的解释也将不胜感激。