sitting(mary, james).
sitting(rosie, andrew).
sitting(kiera, tom).
issitting(X, Y) :- sitting(X, Y).
やあみんな、私は基本的に誰が誰の隣に座っているのか真偽の値をチェックしたいのですが、
コンパイラを入力すると
issitting(rosie, andrew).
ただし、入力すると真の値が返されます
issitting(andrew, rosie).
false値が返されます(互いに隣接しているため、trueになるはずです)。ユーザーが(すべての可能な組み合わせで)隣同士に座っているかどうかを確認する場合に備えて、3行のコードを追加したくありません。
ユーザーが名前を切り替えても、それらがまだ真である(偽ではない)ことをPrologに理解させるために、ルールをどのように変更しますか。
なぜそれが私に「偽」を与えているのか理解できません。
私は立ち往生していて、これは私がこれまでに成し遂げることができた最高のものです:/
ありがとうございました。