我有适合我需要的代码:
f :: [IO Int] -> IO [Int]
f [] = return []
f (x:xs) = do
a <- x
as <- f xs
return (a:as)
但我认为会有一个预定义的方式(msum ?)
但是我看不出来。
欢迎任何帮助。Thx
是的,它在标准库sequence
下可用。它具有比f
: Monad m => [m a] -> m [a]
更通用的类型,因为它适用于任何Monad
,而不仅仅是IO
。
您可以通过在Hoogle上搜索类型[IO a] -> IO [a]
找到它。