早速質問させていただきました。プロローグで setof を使用する存在修飾子 (つまり ^)。
SICStus を使用すると (多くの Web サイトが主張しているにもかかわらず)、S は実際に以下のコードで定量化されているように見えます (事実の母/子の沼地標準を使用して、ここには含めていません):
child(M,F,C) :- setof(X,(mother(S,X)),C).
私は以下を使用して統一をチェックします:
child(M,F,C) :- setof(X-S,(mother(S,X)),C).
したがって、存在演算子を使用した次のコードは違いがないようです。
child(M,F,C) :- setof(X,S^(mother(S,X)),C).
これはなぜですか?その場合、ユニファイヤが必要になる状況はどのようなものでしょうか?
ありがとう!