是否有Scala Library方法执行转换Seq[Option[T]] -> Option[Seq[T]]
?
Haskell等价物为sequence :: Monad m => [m a] -> m [a]
。
答案 0 :(得分:4)
遗憾的是,标准库中没有这个版本(尽管有一个Future.sequence
,正如上面提到的pedrofurla所指出的那样)。造成这种情况的部分原因可能就是Scala标准库对应用函子(甚至是monad)没有任何想法。
正如上面提到的pedrofurla,Scalaz确实提供sequence
,它实际上比Haskell更适合打字 - 而不是要求列表中的monadic作为输入,它接受任何带有应用程序的东西带有可遍历实例的functor实例(即,它相当于Haskell中的Data.Traversable
的{{1}},而不是Prelude中的sequenceA
。