Scala相当于Haskell的序列

时间:2014-03-26 00:36:41

标签: scala functional-programming type-conversion scala-collections

是否有Scala Library方法执行转换Seq[Option[T]] -> Option[Seq[T]]

Haskell等价物为sequence :: Monad m => [m a] -> m [a]

1 个答案:

答案 0 :(得分:4)

遗憾的是,标准库中没有这个版本(尽管有一个Future.sequence,正如上面提到的pedrofurla所指出的那样)。造成这种情况的部分原因可能就是Scala标准库对应用函子(甚至是monad)没有任何想法。

正如上面提到的pedrofurla,Scalaz确实提供sequence,它实际上比Haskell更适合打字 - 而不是要求列表中的monadic作为输入,它接受任何带有应用程序的东西带有可遍历实例的functor实例(即,它相当于Haskell中的Data.Traversable的{​​{1}},而不是Prelude中的sequenceA