| @@ 172-179 (lines=8) @@ | ||
| 169 | * @param callable $predicates... |
|
| 170 | * @return callable |
|
| 171 | */ |
|
| 172 | function all() { |
|
| 173 | $predicates = func_get_args(); |
|
| 174 | return function($value) use($predicates) { |
|
| 175 | return reduce(function($result, $predicate) use($value) { |
|
| 176 | return $result && $predicate($value); |
|
| 177 | }, true, $predicates); |
|
| 178 | }; |
|
| 179 | } |
|
| 180 | ||
| 181 | /** |
|
| 182 | * Takes many predicates and returns a new predicate that |
|
| @@ 204-211 (lines=8) @@ | ||
| 201 | * @param callable $predicates... |
|
| 202 | * @return callable |
|
| 203 | */ |
|
| 204 | function any() { |
|
| 205 | $predicates = func_get_args(); |
|
| 206 | return function($value) use($predicates) { |
|
| 207 | return reduce(function($result, $predicate) use($value) { |
|
| 208 | return $result || $predicate($value); |
|
| 209 | }, false, $predicates); |
|
| 210 | }; |
|
| 211 | } |
|
| 212 | ||
| 213 | /** |
|
| 214 | * Takes a function `f` and returns a function `g` so that if `f` returns |
|