在haskell中使用IO映射?

时间:2011-05-26 13:53:54

标签: haskell

您好我需要帮助解决haskell中的map函数和IO操作。

我有一个像[(x,(y,z))]的列表,我想给列表中的每个项目提供一个函数,所以我想使用map问题是,该函数看起来像:

test :: (String, (String, String)) -> IO (String, String, (String, String))
test (a,(b,c)) = do
    -- some IO stuff
    return (a,b, (c,c))

但是当我尝试使用地图(map test myList)时,我收到错误,因为它是IO,如何解决此问题?

2 个答案:

答案 0 :(得分:5)

您是否尝试使用mapM(来自Control.Monad)?

(对不起,没有更多我只能猜的代码)

答案 1 :(得分:2)

由于test位于IO monad,您必须使用mapM,请参阅hereherehere了解详情。