クエリソリューションを取得するために使用されたすべてのファクトを印刷しようとしていますが、統合に失敗した場合は何も印刷しないことを望んでいます。だから私はこれを書きます:
a:-
b,c,writeln(b^c->a).
b:-
d,writeln(d->b).
c:-
fail,writeln(e->c).
d:-
writeln(d).
a:-
b,d,writeln(b^d->a).
ただし、クエリを実行するa.
と、悲しいことに次の出力が得られました。
d
d->b
d
d->b
d
b^d->a
true.
誰かが、Prologにはクエリを実行するために使用されるすべての事実を表示するメカニズムが組み込まれていると言っているようです。彼は本当ですか?どうすれば正しい出力を得ることができますか?