filter
1. (Originally {Unix}, now also {MS-DOS}) A program that
processes an input data stream into an output data stream in
some well-defined way, and does no I/O to anywhere else except
possibly on error conditions; one designed to be used as a
stage in a {pipeline} (see {plumbing}). Compare {sponge}.
2. ({functional programming}) A {higher-order function} which
takes a {predicate} and a list and returns those elements of
the list for which the predicate is true. In {Haskell}:
filter p [] ◦ []
filter p (x:xs) ◦ if p x then x : rest else rest
where
rest ◦ filter p xs
See also {filter promotion}.
[{Jargon File}]