如何在内部Functor上绘图(ValidationNel [A,Option [B]])

时间:2015-12-22 21:20:42

标签: scala functor scalaz

我需要一个组合器将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)
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我们需要类型lambda 来检索Functor的{​​{1}}个实例。

以下是代码:

Validation