宿題の論理パズルを解くために SWI-prolog を使用する必要がありますが、プログラミングのバックグラウンドがあっても構文と意味が非常に扱いにくいと感じています。私が直面している問題は、シングルトン変数に関するエラーと、パズルが false を返すことです。
これは私がこれまでに行ったことです:
:- use_module(library(clpfd)).
sends(K,priscilla,C),
C#\=rose.
sends(carol,L,rose).
sends(dick,L,sun).
sends(K,L,landscape).
sends(bob,rhonda,C).
sends(edna,quincy,C).
sends(K,simon,deer).
sends(K,tina,C).
solve :-
sends(
[alice,bob,carol,dick,edna],
[priscilla,rhonda,quincy,simon,tina],
[rose,heart,sun,landscape,deer]).
これが質問です。正しい方向への穏やかなナッジ、または言語をよりよく理解するのに役立つ答えをいただければ幸いです。