[Haskell-beginners] Trying to use map

Daniel Fischer daniel.is.fischer at googlemail.com
Thu Jan 27 00:13:51 CET 2011


On Wednesday 26 January 2011 23:51:18, Michael Litchard wrote:
> Here's what I'm working with, followed by what I am trying to do, and
> the type error I get. I'm leaving things out that I do not think are
> important. Let me know if I'm missing nessecary info.
> >
> >
> > obtainCookies :: IO Curl -> String -> IO ()
> > obtainCookies curl responseBody = do
> >               curl' <- curl
> >               let collectedResources = screenScraping responseBody
> >                   in mapM ( curlResp curl' resourceOpts)
>
> collectedResources
>

Looks like you need a flip here:

           in mapM (flip (curlResp curl') resourceOpts) collectedResources

> >               return ()

If you're throwing away the results of the MapM'ed actions, use mapM_

obtainCookies curl responseBody = do
    curl' <- curl
    mapM_ (flip (curlResp curl') resourceOpts) $
          screenScraping responseBody

>
> this function does a monadic action (all I want is the cookies) and I
> don't need the return value. I am not sure that the final line return
> (), is what I want.
>
>
> My primary question is this. how do I map over collectedResources
> correctly? Secondary question, is the return correct?

Use mapM_




More information about the Beginners mailing list