有没有一种标准方法可以将左侧展平为一个列表?
谢谢!
我不确定您要做什么,但是该Monoid
实例应该可以解决问题:
scala> List(
| println("test").successNel[String],
| "a".failNel[Unit],
| "b".failNel[Unit]
| ).suml == Failure(NonEmptyList("a", "b"))
test
res0: Boolean = true
哪里suml
是一个方法,它被添加到任何包含Monoid
实例的集合上。
好的,这是一些可以解决问题的代码:
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 by Rúnar Bjarnason http://scalaz.org