Scalaz:对序列分离的一系列分离

时间:2016-08-25 11:10:24

标签: list scala scalaz

我正在尝试将List[\/[String, Int]]转换为\/[String, List[Int]]。 我能够找到的所有解决方案都指出了sequenceU的用法。 我无法返回\/[String, List[Int]],因为sequenceU返回类型G.M[List[G.A]]

def f(x: Int): \/[String, Int] = if (x > 0) x.right[String] else "failure".left[Int]
val result: G.M[List[G.A]] = List(3, 4, 5).map(f).sequenceU

sequenceU我做错了什么?如何使用它来获取\/[String, List[Int]]

1 个答案:

答案 0 :(得分:2)

只需删除类型归属:

scala> val result = List(3, 4, 5).map(f).sequenceU
result: scalaz.\/[String,List[Int]] = \/-(List(3, 4, 5))