是否有标准方法将左侧展平为单个列表?
谢谢!
答案 0 :(得分:3)
我不确定你要做的是什么,但是Monoid
实例应该可以做到这一点:
scala> List(
| println("test").successNel[String],
| "a".failNel[Unit],
| "b".failNel[Unit]
| ).suml == Failure(NonEmptyList("a", "b"))
test
res0: Boolean = true
其中suml
是一种方法,它会对任何带有Monoid
实例的内容进行任意处理。
答案 1 :(得分:1)
好的,这里有一些代码可以解决这个问题:
scala> type MyValidationNEL[A] = ValidationNEL[String, A]
defined type alias MyValidationNEL
scala> val x: List[MyValidationNEL[Unit]] =
| List("a".failNel, "b".failNel)
x: List[MyValidationNEL[Unit]] = List(Failure(NonEmptyList(a)), Failure(NonEmptyList(b)))
scala> x.sequence
res57: MyValidationNEL[List[Unit]] = Failure(NonEmptyList(a, b))
scala>
我参加了此演示文稿中的部分示例: http://www.scribd.com/doc/93526802/Bjarnason-Scalaz 通过 RúnarBjarnason http://scalaz.org