Talk:Compose
Jump to navigation
Jump to search
Reading this page got me to write an arrow version of compose. Don't know if it should be included or not since it isn't a monadic solution.
composeArrow :: [a -> a] -> a -> a <br/>
composeArrow = foldr ((>>>) . arr) (arr id)
Or maybe this:
composeArrow :: [a -> a] -> a -> a
composeArrow = foldl ((>>>) . arr) returnA
The first version does not need the function composition, because the functions could be applied immediately. This leads to
compose = flip (foldl (flip id))
Shall I replace the first solution?