私のニーズに合ったこのコードがあります:
f :: [IO Int] -> IO [Int]
f [] = return []
f (x:xs) = do
a <- x
as <- f xs
return (a:as)
しかし、事前定義された方法があると思います(msum ?)
しかし、方法がわかりません。
どんな助けでも大歓迎です。どうも
はい、標準ライブラリで という名前で利用できますsequence
。:だけでなく、任意の に対して機能するため、f
:よりも一般的な型を持ちます。Monad m => [m a] -> m [a]
Monad
IO
Hoogle[IO a] -> IO [a]
で typeを検索すると、自分で見つけることができます。