and

combine several runtime predicates with a logical conjunctive

alias and(funcs...) = compose!(all, funcs_to_list!funcs)

Examples

static f (int x){return x > 5;}
static g (int x){return x < 10;}
static h (int x){return x == 7;}

alias q = and!(f,g,h);
alias p = or!(f,g,h);

assert (q(5) == false);
assert (q(6) == false);
assert (q(7) == true);
assert (q(10) == false);

assert (p(5) == true);
assert (p(6) == true);
assert (p(7) == true);
assert (p(10) == true);

Meta