Talk:Compose

From HaskellWiki
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?


I would write:

compose = foldr (flip (.)) id