Merge pull request #2177 from mthom/remove_assertx

Remove assert(a,z)/2 (#1975)
This commit is contained in:
Mark Thom
2023-11-22 17:54:55 +01:00
committed by GitHub
2 changed files with 14 additions and 23 deletions

View File

@@ -1173,8 +1173,13 @@ clause(H, B) :-
% The clause will be inserted at the beginning of the module. % The clause will be inserted at the beginning of the module.
asserta(Clause0) :- asserta(Clause0) :-
loader:strip_subst_module(Clause0, user, Module, Clause), loader:strip_subst_module(Clause0, user, Module, Clause),
iso_ext:asserta(Module, Clause). asserta_(Module, Clause).
asserta_(Module, (Head :- Body)) :-
!,
'$asserta'(Module, Head, Body).
asserta_(Module, Fact) :-
'$asserta'(Module, Fact, true).
:- meta_predicate assertz(:). :- meta_predicate assertz(:).
@@ -1184,7 +1189,13 @@ asserta(Clause0) :-
% The clase will be inserted at the end of the module. % The clase will be inserted at the end of the module.
assertz(Clause0) :- assertz(Clause0) :-
loader:strip_subst_module(Clause0, user, Module, Clause), loader:strip_subst_module(Clause0, user, Module, Clause),
iso_ext:assertz(Module, Clause). assertz_(Module, Clause).
assertz_(Module, (Head :- Body)) :-
!,
'$assertz'(Module, Head, Body).
assertz_(Module, Fact) :-
'$assertz'(Module, Fact, true).
:- meta_predicate retract(:). :- meta_predicate retract(:).

View File

@@ -17,9 +17,7 @@ but they're not part of the ISO Prolog standard at the moment.
succ/2, succ/2,
call_nth/2, call_nth/2,
countall/2, countall/2,
copy_term_nat/2, copy_term_nat/2]).
asserta/2,
assertz/2]).
:- use_module(library(error), [can_be/2, :- use_module(library(error), [can_be/2,
domain_error/3, domain_error/3,
@@ -384,21 +382,3 @@ countall(Goal, N) :-
copy_term_nat(Source, Dest) :- copy_term_nat(Source, Dest) :-
'$copy_term_without_attr_vars'(Source, Dest). '$copy_term_without_attr_vars'(Source, Dest).
%% asserta(Module, Rule_Fact).
%
% Similar to `asserta/1` but allows specifying a Module
asserta(Module, (Head :- Body)) :-
!,
'$asserta'(Module, Head, Body).
asserta(Module, Fact) :-
'$asserta'(Module, Fact, true).
%% assertz(Module, Rule_Fact).
%
% Similar to `assertz/1` but allows specifying a Module
assertz(Module, (Head :- Body)) :-
!,
'$assertz'(Module, Head, Body).
assertz(Module, Fact) :-
'$assertz'(Module, Fact, true).