2013-04-05 45 views
6

我有這樣的代碼,適合我的需要:將[IO Int]轉換爲Haskell中的IO [Int]?

f :: [IO Int] -> IO [Int] 
f [] = return [] 
f (x:xs) = do 
    a <- x 
    as <- f xs 
    return (a:as) 

但我有吼聲將是一個預先定義的方式(MSUM?)

,但我看不出。

任何幫助將受到歡迎。 Thx

回答

22

是的,它在名爲sequence的標準庫中可用。它具有比fMonad m => [m a] -> m [a]更普遍的類型,因爲它適用於任何Monad,而不僅僅是IO

您可以通過搜索Hoogle上的[IO a] -> IO [a]類型來找到它。

+0

謝謝米哈伊爾,正是我所需要的 – asbxl 2013-04-05 14:12:39