2

結果の関数が以前と同じドメインで定義されるように、部分関数に新しい引数を追加する簡単な方法はありますか (新しい引数はその部分性に影響しません)。次のコードは機能しますが、少し冗長に見えます。

  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)
  }
4

1 に答える 1

4

あなたはこれを行うことができます:

val f : PartialFunction[(A, C), B] = { case (a, _) if func.isDefinedAt(a) => func(a) }
于 2015-02-16T19:59:30.170 に答える