如何解决在Haskell中使用IO进行映射?
| 嗨,我需要有关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
参见此处,此处和此处了解详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。