我正在尝试打印用于获取查询解决方案的所有事实,如果统一失败,我希望不打印任何内容。所以我写这个:
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 有一个内置机制来显示用于查询的所有事实。他是真的吗?我怎样才能得到正确的输出?