List.filter : (a -> Bool) -> List a -> List a is a higher-order function which takes a one-parameter function from any value to a boolean, and applies that function to every element of a given list, keeping only those elements for which the function returns
True on. The function that
List.filter takes as its first parameter is often referred to as a predicate.
import String catStory : List String catStory = ["a", "crazy", "cat", "walked", "into", "a", "bar"] -- Any word with more than 3 characters is so long! isLongWord : String -> Bool isLongWord string = String.length string > 3 longWordsFromCatStory : List String longWordsFromCatStory = List.filter isLongWord catStory
Evaluate this in
> longWordsFromCatStory ["crazy", "walked", "into"] : List String > > List.filter (String.startsWith "w") longWordsFromCatStory ["walked"] : List String