filter
filter, applied to a predicate and a list, returns the list of
those elements that satisfy the predicate; i.e.,
filter p xs = [ x | x <- xs, p x]
filter p xs removes any elements from
xs that
do not satisfy
p.
This generalizes the list-based filter function.
Direct
MonadPlus equivalent of
filter
filter =
(mfilter:: (a -> Bool) -> [a]
-> [a] applicable to any
MonadPlus, for example
mfilter odd (Just 1) == Just 1 mfilter odd (Just 2) ==
Nothing