Я пытаюсь напечатать все факты, используемые для получения запроса, и я надеюсь ничего не печатать, если унификация потерпит неудачу. Так что я пишу это:Как получить все факты, используемые для получения запроса в Prolog?
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.
Кто-то, кажется, сказать мне, что Пролог имеет встроенный machanism показать все факты, используемые для выполнения запроса. Это правда? Как я могу получить правильный результат?