From: Mark Thom Date: Thu, 25 Nov 2021 02:00:52 +0000 (-0700) Subject: use strip module in retract/1, a meta-predicate X-Git-Tag: v0.9.0^2~120 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=b551ef315faf304c1010dbb342f89041fa3ac56f;p=scryer-prolog.git use strip module in retract/1, a meta-predicate --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index d0f7245e..2f3066f3 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -964,13 +964,14 @@ retract_clause(Head, Body) :- :- meta_predicate retract(0). retract(Clause0) :- - strip_module(Clause0, Module, Clause), - ( Clause = (Head :- Body) -> - true - ; Head = Clause, - Body = true - ), - retract_clause(Module:Head, Body). + loader:strip_module(Clause0, Module, Clause), + ( Clause \= (_ :- _) -> + Head = Clause, + Body = true, + retract_module_clause(Head, Body, Module) + ; Clause = (Head :- Body) -> + retract_module_clause(Head, Body, Module) + ). :- meta_predicate retractall(0).