问题描述
|
嗨,我需要有关haskell中的地图功能和IO操作的帮助。
我有一个类似于
[(x,(y,z))]
的列表,我想给列表中的每个项目一个函数,所以我想使用map
的问题是,该函数看起来像:
test :: (String,(String,String)) -> IO (String,String,String))
test (a,(b,c)) = do
-- some IO stuff
return (a,b,(c,c))
但是当我尝试使用map(map test myList
)时,由于是IO
,我得到一个错误,如何解决呢?
解决方法
您是否尝试使用
mapM
(来自Control.Monad
)?
(抱歉,没有更多的代码,我只能猜测)
,因为test
位于IO
monad中,所以您必须使用mapM
参见此处,此处和此处了解详细信息。