improve implementation of call_with_args/*
This commit is contained in:
136
pl/utils.yap
136
pl/utils.yap
@@ -55,142 +55,6 @@ call(X,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) :- '$execute'(X,A1,A2,A3,A4,A5,A6,A7,A8,A
|
||||
|
||||
call(X,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11) :- '$execute'(X,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11).
|
||||
|
||||
call_with_args(M:V) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V)).
|
||||
call_with_args(_:M:A) :- !,
|
||||
call_with_args(M:A).
|
||||
call_with_args(M:A) :- !,
|
||||
'$call_with_args'(A,M).
|
||||
call_with_args(A) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,M).
|
||||
call_with_args(A) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A)).
|
||||
|
||||
|
||||
call_with_args(M:V,A1) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1)).
|
||||
call_with_args(_:M:A,A1) :- !,
|
||||
call_with_args(M:A,A1).
|
||||
call_with_args(M:A,A1) :- !,
|
||||
'$call_with_args'(A,A1,M).
|
||||
call_with_args(A,A1) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,M).
|
||||
call_with_args(A,A1) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1)).
|
||||
|
||||
call_with_args(M:V,A1,A2) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2)).
|
||||
call_with_args(_:M:A,A1,A2) :- !,
|
||||
call_with_args(M:A,A1,A2).
|
||||
call_with_args(M:A,A1,A2) :- !,
|
||||
'$call_with_args'(A,A1,A2,M).
|
||||
call_with_args(A,A1,A2) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,M).
|
||||
call_with_args(A,A1,A2) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3)).
|
||||
call_with_args(_:M:A,A1,A2,A3) :- !,
|
||||
call_with_args(M:A,A1,A2,A3).
|
||||
call_with_args(M:A,A1,A2,A3) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,M).
|
||||
call_with_args(A,A1,A2,A3) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,M).
|
||||
call_with_args(A,A1,A2,A3) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4).
|
||||
call_with_args(M:A,A1,A2,A3,A4) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,M).
|
||||
call_with_args(A,A1,A2,A3,A4) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,M).
|
||||
call_with_args(A,A1,A2,A3,A4) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5,A6) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5,A6)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5,A6) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5,A6)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5,A6,A7) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5,A6,A7)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5,A6,A7,A8) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8)).
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8,A9) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8,A9)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5,A6,A7,A8,A9) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8,A9).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8,A9) :- !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9)).
|
||||
|
||||
|
||||
call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) :- var(V), !,
|
||||
'$do_error'(instantiation_error,call_with_args(M:V,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)).
|
||||
call_with_args(_:M:A,A1,A2,A3,A4,A5,A6,A7,A8,A10) :- !,
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8,A10).
|
||||
call_with_args(M:A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) :- !,
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) :- atom(A), !,
|
||||
'$current_module'(M),
|
||||
'$call_with_args'(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,M).
|
||||
call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) :-
|
||||
'$do_error'(type_error(atom,A),call_with_args(A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)).
|
||||
|
||||
|
||||
call_cleanup(Goal, Cleanup) :-
|
||||
call_cleanup(Goal, _Catcher, Cleanup).
|
||||
|
||||
|
Reference in New Issue
Block a user