Filter: Difference between revisions

460 bytes added ,  2 years ago
No edit summary
Line 2,599:
$evens = array_filter($arr, "is_even");
print_r($evens);</lang>
 
=={{header|Picat}}==
List comprehension is probably the best way of filtering:
<lang Picat>[I : I in 1..20, I mod 2 == 0]</lang>
 
A more general version of filtering is to use <code>call/1</code> with a defined predicate (here <code>p/1</code>):
<lang Picat>go =>
L = 1..20,
A = filter(L,p).
 
p(N) => N mod 2 == 0.
 
filter(A,F) = [N : N in A, call(F,N)].</lang>
 
This general version might be slower since using <code>call/1</code> has some overhead.
 
 
=={{header|PicoLisp}}==
495

edits