Filter (hogere-ordefunctie)In programmeertalen is filter een hogere-ordefunctie waarmee een datastructuur (vaak een lijst) in een bepaalde volgorde wordt doorlopen om een nieuwe datastructuur te produceren die alleen de elementen bevat uit de oorspronkelijke datastructuur waarvoor een predicaat waar is. De functie komt onder andere voor in Haskell[1], Objective Caml[2], Standard ML[3], Python[4], Erlang, Perl (onder de naam grep) en JavaScript. Common Lisp bevat de functies DefinitieDe filter-functie kan als volgt gedefinieerd worden (in Haskell): filter :: (a -> Bool) -> [a] -> [a] filter _ [] = [] filter p (x:xs) | p x = x : filter p xs | otherwise = filter p xs Filter kan ook geschreven worden met lijstcomprehensie in talen die deze taalconstructie ondersteunen: filter :: (a -> Bool) -> [a] -> [a] filter p lijst = [ x | x <- lijst, p x ] VoorbeeldenIn Haskell:
De notatie
waarbij Bronnen, noten en/of referenties
|