]> Repositorios git - scryer-prolog.git/commitdiff
add meta-predicate declarations to reif library
authorMark Thom <[email protected]>
Wed, 3 Feb 2021 19:46:33 +0000 (12:46 -0700)
committerMark Thom <[email protected]>
Wed, 3 Feb 2021 19:46:33 +0000 (12:46 -0700)
src/lib/reif.pl

index 0e958356995c5491a297cefc0963a69735cd519d..092f93ec4663a20184a3f9a4586b385e39c4a0d6 100644 (file)
@@ -4,6 +4,8 @@
 
 :- use_module(library(dif)).
 
+:- meta_predicate if_(0, 0, 0).
+
 if_(If_1, Then_0, Else_0) :-
     call(If_1, T),
     (  T == true  -> call(Then_0)
@@ -26,6 +28,8 @@ dif(X, Y, T) :-
 non(true, false).
 non(false, true).
 
+:- meta_predicate tfilter(1, ?, ?).
+
 tfilter(C_2, Es, Fs) :-
    i_tfilter(Es, C_2, Fs).
 
@@ -34,6 +38,8 @@ i_tfilter([E|Es], C_2, Fs0) :-
    if_(call(C_2, E), Fs0 = [E|Fs], Fs0 = Fs),
    i_tfilter(Es, C_2, Fs).
 
+:- meta_predicate tpartition(1, ?, ?).
+
 tpartition(P_2, Xs, Ts, Fs) :-
    i_tpartition(Xs, P_2, Ts, Fs).
 
@@ -44,12 +50,18 @@ i_tpartition([X|Xs], P_2, Ts0, Fs0) :-
       , ( Fs0 = [X|Fs], Ts0 = Ts ) ),
    i_tpartition(Xs, P_2, Ts, Fs).
 
+:- meta_predicate ','(0, 0, ?).
+
 ','(A_1, B_1, T) :-
     if_(A_1, call(B_1, T), T = false).
 
+:- meta_predicate ';'(0, 0, ?).
+
 ';'(A_1, B_1, T) :-
     if_(A_1, T = true, call(B_1, T)).
 
+:- meta_predicate cond_t(0, 0, ?).
+
 cond_t(If_1, Then_0, T) :-
    if_(If_1, ( Then_0, T = true ), T = false ).
 
@@ -60,8 +72,12 @@ i_memberd_t([], _, false).
 i_memberd_t([X|Xs], E, T) :-
    if_( X = E, T = true, i_memberd_t(Xs, E, T) ).
 
+:- meta_predicate tmember(1, ?).
+
 tmember(P_2, [X|Xs]) :-
    if_( call(P_2, X), true, tmember(P_2, Xs) ).
 
+:- meta_predicate tmember_t(1, ?).
+
 tmember_t(P_2, [X|Xs], T) :-
    if_( call(P_2, X), T = true, tmember_t(P_2, Xs, T) ).