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.