mapFilter
--todo: generalize to traversables/foldables
mapFilter :: (a -> Bool) -> (a -> b) -> [] a -> [] b
mapFilter p f [] = []
mapFilter p f (x:xs) = (if p x then [(f x)] else []) ++ (mapFilter p f xs)
main = print $ mapFilter (>=3) (+1) [1,2,3,4,5]INFO