我正在使用Scalaz验证,我遇到了这样的情况(请注意,这是从我的实际代码中大大简化,但想法是一样的)
假设:
case class Foo(bar: Int)
val x1: Validation[String, Foo] = Foo(1).success
val x2: Validation[String, Foo] = Foo(2).success
val x3: Validation[String, Foo] = Foo(3).success
val l1 = List(x1, x2)
我希望能够做到这一点:
(x3 |@| l1) { (x1, x2, x3) => /*do something with all of my Foo's*/ }
当然,如果有任何错误,无论是在列表中还是在列表之外,我都希望它们像往常一样积累。
我知道上面的语法不起作用,但是对于如何实现我正在寻找的结果的任何建议都将不胜感激。