Supongamos que tengo unos hechos DB llenos de al menos:¿Cómo encontrar todas las reglas de prólogo en la base de datos
fact1(A) :- !, A=ok.
fact2(B) :- !, B=ok.
¿Cómo puedo enumerar todos los hechos de este db? Lo ideal sería que tendría un predicado que podría utilizar:
?- 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...
encontré current_predicate/1, pero no puedo imaginar lo que esto está haciendo realidad ...
consider 'functor (Pred, Name, Arity)' – false
¡cláusula/2 es exactamente lo que estoy buscando! En este ejemplo, creo que llamarlo con cláusula (Cabeza, Cuerpo) me daría Head = hecho (A), Cuerpo = (!, A = ok) – DaveEdelstein
@false Gracias, corregido. – Kaarel