否定を使わずに、2 人が同じ趣味を持っている場合に true を返す Prolog 述語を書きたいと思います。次のデータベースがあります。
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
等しい場合にも真Y
であり、私はこれが当てはまりたくありません。誰でも解決策を見つけるのを手伝ってもらえますか? 小さな説明も大歓迎です。