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



我有适合我需要的代码:

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]找到它。

相关内容

最新更新