Как найти все правила пролога в базе данных

Предположим, у меня есть база данных фактов, заполненная как минимум:

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 , но я не могу понять, что это на самом деле делает ...

7
задан DaveEdelstein 6 June 2011 в 19:34
поделиться