move asserta/2, assertz/2 to iso_ext
This commit is contained in:
@@ -1,13 +1,11 @@
|
|||||||
:- module(builtins, [(=)/2, (\=)/2, (\+)/1, !/0, (',')/2, (->)/2,
|
:- module(builtins, [(=)/2, (\=)/2, (\+)/1, !/0, (',')/2, (->)/2,
|
||||||
(;)/2, (=..)/2, /* (:)/2, (:)/3, (:)/4, (:)/5,
|
(;)/2, (=..)/2, abolish/1, asserta/1, assertz/1,
|
||||||
(:)/6, (:)/7, (:)/8, (:)/9, (:)/10, (:)/11,
|
at_end_of_stream/0, at_end_of_stream/1,
|
||||||
(:)/12, */ abolish/1, asserta/1, asserta/2,
|
atom_chars/2, atom_codes/2, atom_concat/3,
|
||||||
assertz/1, assertz/2, at_end_of_stream/0,
|
atom_length/2, bagof/3, call/1, call/2, call/3,
|
||||||
at_end_of_stream/1, atom_chars/2, atom_codes/2,
|
call/4, call/5, call/6, call/7, call/8, call/9,
|
||||||
atom_concat/3, atom_length/2, bagof/3, call/1,
|
callable/1, catch/3, char_code/2, clause/2,
|
||||||
call/2, call/3, call/4, call/5, call/6, call/7,
|
close/1, close/2, current_input/1,
|
||||||
call/8, call/9, callable/1, catch/3, char_code/2,
|
|
||||||
clause/2, close/1, close/2, current_input/1,
|
|
||||||
current_output/1, current_op/3,
|
current_output/1, current_op/3,
|
||||||
current_predicate/1, current_prolog_flag/2,
|
current_predicate/1, current_prolog_flag/2,
|
||||||
error/2, fail/0, false/0, findall/3, findall/4,
|
error/2, fail/0, false/0, findall/3, findall/4,
|
||||||
@@ -59,66 +57,6 @@ call(_, _, _, _, _, _, _, _).
|
|||||||
|
|
||||||
call(_, _, _, _, _, _, _, _, _).
|
call(_, _, _, _, _, _, _, _, _).
|
||||||
|
|
||||||
% dynamic module resolution.
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Module : Predicate :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4) :-
|
|
||||||
( atom(Module) -> '$module_call'(A4, Module, Predicate, A1, A2, A3)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5, A6) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5, A6)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5, A6, A7) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5, A6, A7)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8, A9) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8, A9)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
:(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) :-
|
|
||||||
( atom(Module) -> '$module_call'(Module, Predicate, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
|
|
||||||
; throw(error(type_error(atom, Module), (:)/2))
|
|
||||||
).
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
:- meta_predicate catch(0, ?, 0).
|
:- meta_predicate catch(0, ?, 0).
|
||||||
|
|
||||||
@@ -897,25 +835,14 @@ clause(H, B) :-
|
|||||||
|
|
||||||
asserta(Clause0) :-
|
asserta(Clause0) :-
|
||||||
loader:strip_subst_module(Clause0, user, Module, Clause),
|
loader:strip_subst_module(Clause0, user, Module, Clause),
|
||||||
asserta(Module, Clause).
|
iso_ext:asserta(Module, Clause).
|
||||||
|
|
||||||
asserta(Module, (Head :- Body)) :-
|
|
||||||
!,
|
|
||||||
'$asserta'(Module, Head, Body).
|
|
||||||
asserta(Module, Fact) :-
|
|
||||||
'$asserta'(Module, Fact, true).
|
|
||||||
|
|
||||||
:- meta_predicate assertz(:).
|
:- meta_predicate assertz(:).
|
||||||
|
|
||||||
assertz(Clause0) :-
|
assertz(Clause0) :-
|
||||||
loader:strip_subst_module(Clause0, user, Module, Clause),
|
loader:strip_subst_module(Clause0, user, Module, Clause),
|
||||||
assertz(Module, Clause).
|
iso_ext:assertz(Module, Clause).
|
||||||
|
|
||||||
assertz(Module, (Head :- Body)) :-
|
|
||||||
!,
|
|
||||||
'$assertz'(Module, Head, Body).
|
|
||||||
assertz(Module, Fact) :-
|
|
||||||
'$assertz'(Module, Fact, true).
|
|
||||||
|
|
||||||
|
|
||||||
:- meta_predicate retract(:).
|
:- meta_predicate retract(:).
|
||||||
|
|||||||
@@ -9,7 +9,9 @@
|
|||||||
partial_string_tail/2,
|
partial_string_tail/2,
|
||||||
setup_call_cleanup/3,
|
setup_call_cleanup/3,
|
||||||
call_nth/2,
|
call_nth/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,
|
||||||
@@ -247,3 +249,17 @@ call_nth_nesting(C, ID) :-
|
|||||||
|
|
||||||
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, (Head :- Body)) :-
|
||||||
|
!,
|
||||||
|
'$asserta'(Module, Head, Body).
|
||||||
|
asserta(Module, Fact) :-
|
||||||
|
'$asserta'(Module, Fact, true).
|
||||||
|
|
||||||
|
assertz(Module, (Head :- Body)) :-
|
||||||
|
!,
|
||||||
|
'$assertz'(Module, Head, Body).
|
||||||
|
assertz(Module, Fact) :-
|
||||||
|
'$assertz'(Module, Fact, true).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user