hssequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
sequence = mapM id
t
と計算コンテナ m
を入れ替えているだけ [[a]]
を [[a]]
へhssequence [[1], [2], [3]] -- [[1,2,3]]
[Maybe a]
を Maybe [a]
へhssequence [Just 5, Just 100] -- Just [5,100]
sequence [Just 5, Nothing, Just 100] -- Nothing