我有这个符合我需要的代码:
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上搜索类型来找到它.