Merge pull request #958 from pmoura/fixes_for_retract_predicates
Fixes for retract predicates
This commit is contained in:
@@ -985,13 +985,8 @@ retract_clause(Head, Body) :-
|
|||||||
( Name == (:),
|
( Name == (:),
|
||||||
Arity =:= 2 ->
|
Arity =:= 2 ->
|
||||||
arg(1, Head, Module),
|
arg(1, Head, Module),
|
||||||
arg(2, Head, HeadAndBody),
|
arg(2, Head, Head1),
|
||||||
( HeadAndBody = (F :- Body1) ->
|
retract_module_clause(Head1, Body, Module)
|
||||||
true
|
|
||||||
; F = HeadAndBody,
|
|
||||||
Body1 = true
|
|
||||||
),
|
|
||||||
retract_module_clause(F, Body1, Module)
|
|
||||||
; '$no_such_predicate'(user, Head) ->
|
; '$no_such_predicate'(user, Head) ->
|
||||||
'$fail'
|
'$fail'
|
||||||
; '$head_is_dynamic'(user, Head) ->
|
; '$head_is_dynamic'(user, Head) ->
|
||||||
@@ -1016,7 +1011,7 @@ retract(Clause) :-
|
|||||||
:- meta_predicate retractall(0).
|
:- meta_predicate retractall(0).
|
||||||
|
|
||||||
retractall(Head) :-
|
retractall(Head) :-
|
||||||
retract((Head :- _)),
|
retract_clause(Head, _),
|
||||||
false.
|
false.
|
||||||
retractall(_).
|
retractall(_).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user