0
我已经写了组合子转换一个ValidationNel[A, List[B]]
成ValidationNel[A, NonEmptyList[B]]
一个返回Failure
当List
是空的。转换一个ValidationNel [A,列表[B]]到ValidationNel [A,NonEmptyList [B]]
def nonEmpty[A, B](valid : ValidationNel[A, List[B]], fail : => A) : ValidationNel[A, NonEmptyList[B]] =
valid match {
case Failure(f) => f.failure[NonEmptyList[B]]
case Success(s) =>
if (!s.isEmpty) NonEmptyList(s.head, s.tail:_*).successNel[A]
else fail.failureNel[NonEmptyList[B]]
}
有没有更好的方法?
从其中隐含了'wrapNel'从何而来?我有这个编译错误:'value wrapNel不是类型参数A的成员' –
'scalaz.syntax.nel._' –
了解它。看来这个导入'scalaz.syntax.all._'有冲突 –