Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scalaz7中的'sequence'在哪里_Scala_Scalaz_Scalaz7 - Fatal编程技术网

Scalaz7中的'sequence'在哪里

Scalaz7中的'sequence'在哪里,scala,scalaz,scalaz7,Scala,Scalaz,Scalaz7,我正在学习Scalaz,我有一个项目已经使用了Scalaz7。下面我想使用这个函数 sequence[T](l: List[Option[T]]): Option[List[T]] (并不是说自己写起来很难)。但上述问题提到了Scalaz6 Scalaz7中的序列函数在哪里 它在type类中定义,如下所示: def sequence[G[_]:Applicative,A](fga: F[G[A]]): G[F[A]] = traversal[G].run[G[A], A](fga)(ga

我正在学习Scalaz,我有一个项目已经使用了Scalaz7。下面我想使用这个函数

sequence[T](l: List[Option[T]]): Option[List[T]]
(并不是说自己写起来很难)。但上述问题提到了Scalaz6

Scalaz7中的序列函数在哪里

它在type类中定义,如下所示:

def sequence[G[_]:Applicative,A](fga: F[G[A]]): G[F[A]] =
  traversal[G].run[G[A], A](fga)(ga => ga)
scala> val xs: List[Option[Int]] = Some(1) :: Some(2) :: Nil
xs: List[Option[Int]] = List(Some(1), Some(2))

scala> xs.sequence
res0: Option[List[Int]] = Some(List(1, 2))
提供一个版本,该版本将被PIMP添加到
列表
,因为
列表
有一个
遍历
实例

您可以直接导入所需内容:

import scalaz._, std.list._, std.option._, syntax.traverse._
或者所有东西和厨房水槽:

import scalaz._, Scalaz._
然后你可以这样使用它:

def sequence[G[_]:Applicative,A](fga: F[G[A]]): G[F[A]] =
  traversal[G].run[G[A], A](fga)(ga => ga)
scala> val xs: List[Option[Int]] = Some(1) :: Some(2) :: Nil
xs: List[Option[Int]] = List(Some(1), Some(2))

scala> xs.sequence
res0: Option[List[Int]] = Some(List(1, 2))
或者,如果您想知道问题中的确切表述:

scala> def sequence[T](l: List[Option[T]]): Option[List[T]] = l.sequence
sequence: [T](l: List[Option[T]])Option[List[T]]

scala> sequence(xs)
res1: Option[List[Int]] = Some(List(1, 2))