在Haskell中将[IO Int]转换为IO [Int]?

asb*_*bxl 6 monads haskell

我有这个符合我需要的代码:

f :: [IO Int] -> IO [Int]
f [] = return []
f (x:xs) = do 
  a <- x
  as <- f xs
  return (a:as)
Run Code Online (Sandbox Code Playgroud)

但我知道会有一种预定义的方式(msum?)

但我看不出怎么样.

欢迎任何帮助.谢谢

Mik*_*kov 22

是的,它可以在名称下的标准库中找到sequence.它比你的更一般的类型f:Monad m => [m a] -> m [a],因为它可以用于任何Monad,不只是IO.

您可以通过[IO a] -> IO [a]Hoogle上搜索类型来找到它.