# Programming-Idioms

# 57
Implementation
Pascal

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please try to avoid dependencies to third-party libraries and frameworks.

Implementation edit is for fixing errors and enhancing with metadata.

Instead of changing the code of the snippet, consider creating another Pascal implementation.

Other implementations
```y := make([]T, 0, len(x))
for _, v := range x{
if p(v){
y = append(y, v)
}
}```
`val y = x.filter(p)`
`var y = x.stream().filter(p).collect(Collectors.toList());`
`(define y (filter p x))`
`y = filter(p, x) `
```# 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;```
`y = x.filter(p);`
`let y: Vec<_> = x.iter().filter(p).collect();`
```function p(\$element) {  /* .... */ }

\$y = array_filter (\$x, "p");
```
`import std.algorithm;`
```auto y = [1, 2, 3, 4, 5].filter!(a => a%2==0);
```
`import std.algorithm.iteration;`
`auto y = x.filter!(p);`
`var y = x.where(p).toList();`
```y = filter p x
```
`y = x.select(&:p)`
`y = Enum.filter(x, p)`
`Y = [I || I <- X, P(X)].`
`Y = lists:filter(P, X).`
```y = {}
for _, v in ipairs(x) do
if p(v) then y[#y+1] = v end
end```
`var y = x.FindAll(p);`
```for Item of X loop
if P (Item) then
Y.Append (Item);
end if;
end loop;```
```#include <algorithm>
#include <iterator>```
```std::copy_if (x.begin (), x.end (), std::back_inserter(y), p);
```
`(def y (filter p x))`
`(setf y (remove-if-not p x))`
`y = [element for element in x if p(element)]`
`y = pack(x,mask=p(x))`
`val y = x.filter(p)`
`y = for item <- x, p.(item), do: item`