correct and generalize current_predicate/1

This commit is contained in:
Mark
2023-06-28 17:31:43 -06:00
parent c4b13a2176
commit 58af615dd4
4 changed files with 9 additions and 10 deletions

View File

@@ -1252,14 +1252,13 @@ abolish(Pred) :-
% It can be used to check for existence of a predicate or to enumerate all loaded predicates
current_predicate(Pred) :-
( var(Pred) ->
'$get_db_refs'(_, _, PIs),
'$get_db_refs'(_, _, _, PIs),
lists:member(Pred, PIs)
; '$strip_module'(Pred, Module, UnqualifiedPred),
( var(Module),
\+ functor(Pred, (:), 2)
; atom(Module)
),
nonvar(UnqualifiedPred),
UnqualifiedPred = Name/Arity ->
( ( nonvar(Name), \+ atom(Name)
; nonvar(Arity), \+ integer(Arity)