Scala中与Haskell的`sequence`函数类似的是什么?
http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:sequence
在Haskell中,`sequence`的定义如下:
sequence :: Monad m => [m a] -> m [a]
sequence ms = foldr k (return []) ms
where
k m m' = do { x <- m; xs <- m'; return (x:xs) }
以下是一些用途:
ghci> sequence [Just 1, Just 2, Nothing, Just 3]
Nothing
ghci> sequence [[1,2],[3,4],[5,6]]
[[1,3,5],[1,3,6],[1,4,5],[1,4,6],[2,3,5],[2,3,6],[2,4,5],[2,4,6]]
提前致谢!
Data.Traversable
中的sequenceA
函数。 - ertesValidation
),而 Prelude 的则不行。是的,有sequenceA
,但问题提到的是sequence
。 - Travis Brownsequence
是否可以在可遍历和可折叠的函数子类上工作,就像Haskell中的sequenceA
实现一样? - Matt W-D