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
 	   rest = filter p xs

See also filter promotion.

[Jargon File]

Nearby terms:

film at 11FILOFiltabytefilterfilter promotionFIMSFinagle's Law

Try this search on Wikipedia, Wiktionary, Google, OneLook.