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 xSSee alSo filter promotion. [Jargon File]