6

私のニーズに合ったこのコードがあります:

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

しかし、事前定義された方法があると思います(msum ?)

しかし、方法がわかりません。

どんな助けでも大歓迎です。どうも

4

1 に答える 1

22

はい、標準ライブラリで という名前で利用できますsequence。:だけでなく、任意の に対して機能するため、f:よりも一般的な型を持ちます。Monad m => [m a] -> m [a]MonadIO

Hoogle[IO a] -> IO [a]で typeを検索すると、自分で見つけることができます。

于 2013-04-05T11:41:27.257 に答える