use strip module in retract/1, a meta-predicate

This commit is contained in:
Mark Thom
2022-01-06 21:44:41 -07:00
parent 10bb6ab3bb
commit b551ef315f
+8 -7
View File
@@ -964,13 +964,14 @@ retract_clause(Head, Body) :-
:- meta_predicate retract(0). :- meta_predicate retract(0).
retract(Clause0) :- retract(Clause0) :-
strip_module(Clause0, Module, Clause), loader:strip_module(Clause0, Module, Clause),
( Clause = (Head :- Body) -> ( Clause \= (_ :- _) ->
true Head = Clause,
; Head = Clause, Body = true,
Body = true retract_module_clause(Head, Body, Module)
), ; Clause = (Head :- Body) ->
retract_clause(Module:Head, Body). retract_module_clause(Head, Body, Module)
).
:- meta_predicate retractall(0). :- meta_predicate retractall(0).