# You can use a subroutine as your predicate
@primes_less_than_100 = grep { is_prime($_) } 1 .. 99;
# You can also write your predicate inline
@odd_numbers = grep { $_%2 == 1 } 1 .. 99;
for Item of X loop
if P (Item) then
Y.Append (Item);
end if;
end loop;
auto y = x | std::views::filter(p);
std::copy_if (x.begin (), x.end (), std::back_inserter(y), p);
var y = x.Where(p).ToList();
auto y = [1, 2, 3, 4, 5].filter!(a => a%2==0);
var y = x.where(p).toList();
y = for item <- x, p.(item), do: item
del := func(t *T) bool { return !p(t) }
y := slices.DeleteFunc(slices.Clone(x), del)
func filter[S ~[]T, T any](x S, p func(T) bool) S {
var y S
for _, v := range x {
if p(v) {
y = append(y, v)
}
}
return y
}
n := 0
for _, v := range x {
if p(v) {
n++
}
}
y := make([]T, 0, n)
for _, v := range x {
if p(v) {
y = append(y, v)
}
}
y := make([]T, 0, len(x))
for _, v := range x{
if p(v){
y = append(y, v)
}
}
List<T> y = x.stream().filter(p).toList();
List<T> y = new ArrayList<>();
for (T t : x) if (p.test(t)) y.add(t);
(setf y (remove-if-not p x))
y = {}
for _, v in ipairs(x) do
if p(v) then y[#y+1] = v end
end
local y={}
for _,v in ipairs(x) do
if p(v)==true then
table.insert(y,v)
end
end
NSArray *y=[x filteredArrayUsingPredicate:p];
function p($element) { /* .... */ }
$y = array_filter ($x, "p");
function Filter(vv:integer):boolean;
begin
result := vv mod 2= 0;
end;
type TFilter=function(v:integer):boolean;
function FilteredArray(const x:TBoundArray;p:TFilter):TBoundArray;
var
Idx: Integer;
v : Integer;
begin
setlength(result,high(x)+1);
Idx := 0;
for v in x do
if p(v) then
begin
result[Idx] := v;
inc(Idx);
end;
setlength(result,Idx);
end;
[...]
y := FilteredArray(x,@Filter);
y = [element for element in x if p(element)]
let y: Vec<_> = x.iter().filter(p).collect();
y := x select: [:item | item p].