Scalaz7中的“sequence”在哪里?
发布时间:2020-12-16 09:20:54 所属栏目:安全 来源:网络整理
导读:我正在学习Scalaz,我有一个已经使用Scalaz7的项目.以下 this question我想使用该功能 sequence[T](l: List[Option[T]]): Option[List[T]] (不是很难自己写).但上述问题提到Scalaz6. Where to find the sequence function in Scalaz7? 解决方法 它在 scalaz.T
我正在学习Scalaz,我有一个已经使用Scalaz7的项目.以下 this question我想使用该功能 sequence[T](l: List[Option[T]]): Option[List[T]] (不是很难自己写).但上述问题提到Scalaz6.
解决方法
它在
scalaz.Traverse 类型的类中定义,它看起来像这样:
def sequence[G[_]:Applicative,A](fga: F[G[A]]): G[F[A]] = traversal[G].run[G[A],A](fga)(ga => ga)
您可以导入您需要的东西: import scalaz._,std.list._,std.option._,syntax.traverse._ 或一切和厨房水槽: import scalaz._,Scalaz._ 然后你可以这样使用它: 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)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |