[Haskell-beginners] Eliminate repetitive monad/list code

Tobias Brandt tob.brandt at googlemail.com
Thu Nov 4 12:33:33 EDT 2010


On 4 November 2010 17:19, John Smith <voldermort at hotmail.com> wrote:
> foo :: IO A
>
> bar :: Bool -> A -> Int -> Bool -> IO ()
>
> bar' a b = bar True a b False
>
> do
>  x <- foo
>  y <- foo
>  z <- foo
>
>  bar x 1
>  bar y 2
>  bar z 3
>
> but I don't know what to do next. Is there some form of list comprehension
> or combination of map and lift which will eliminate the repetition?


mapM_ (\x -> foo >>= flip bar x) [1,2,3]


More information about the Beginners mailing list