我需要一个组合器将ValidationNel[A, Option[B]]
转换为ValidationNel[A, Option[C]]
以映射(通过映射选项)验证成功。
以下是代码:
def mapmap[A, B, C](valid: ValidationNel[A, Option[B]], f: B => C) : ValidationNel[A, Option[C]] =
valid.map(_.map(f))
我还试图编写仿函数(但不幸的是,这不编译):
def nestedMap[A, B, C](valid: ValidationNel[A, Option[B]])(f: B => C) : ValidationNel[A, Option[C]] = {
val composed = Functor[Validation].compose[Option]
composed.map(valid, f)
}
有更好的方法吗?
答案 0 :(得分:0)
我们需要类型lambda 来检索Functor
的{{1}}个实例。
以下是代码:
Validation