Предположим, у меня есть база данных фактов, заполненная по крайней мере:
fact1(A) :- !, A=ok.
fact2(B) :- !, B=ok.
Как я могу перечислить все факты в этой базе данных?В идеале у меня был бы предикат, который я мог бы использовать:
?- all_rules( Head :- Tail).
Head=fact1(_G100),
Tail=(!, _G100=ok) ;
Head=fact2(_G101),
Tail=(!, _G101=ok)
....followed by all other predicates in other modules loaded...
Я нашел current_predicate / 1 , но я не могу понять, что это на самом деле делает ...