所以我有类似的东西:
[IO Blah, IO Blah, IO Blah]
我真的只想要一个Blah
的列表,我该怎么做?
P.S。:是的,我在IO功能中工作。
答案 0 :(得分:15)
答案 1 :(得分:8)
你想要的是sequence :: Monad m => [m a] -> m [a]
。它按预期工作:所有操作按顺序执行,结果被收集并返回。请注意,除非所有命令都已完成,否则不会返回任何内容。
答案 2 :(得分:8)
Hoogle在回答这些问题时非常有用,如果您知道如何将问题表达为类型,例如:http://www.haskell.org/hoogle/?hoogle=%5BIO+a%5D+-%3E+IO+%5Ba%5D