向部分函数添加新参数

时间:2015-02-16 19:34:39

标签: scala partialfunction

是否有一些简单的方法如何向部分函数添加新参数,以便结果函数在以前的同一域中定义(新参数对其偏好没有影响)?下面的代码工作,但似乎有点冗长。

  val func : PartialFunction[A, B] = ....

  val f = new PartialFunction[(A,C), B] {
    def isDefinedAt(x: (A,C)): Boolean = func.isDefinedAt(x._1)
    def apply(x: (A,C)):B = func(x._1)
  }

1 个答案:

答案 0 :(得分:4)

你可以这样做:

val f : PartialFunction[(A, C), B] = { case (a, _) if func.isDefinedAt(a) => func(a) }