Добавление новых аргументов в частичную функцию

Есть ли какой-нибудь простой способ, как добавить новые аргументы в частичную функцию, чтобы результирующая функция была определена в той же области, что и раньше (новые аргументы не влияют на ее пристрастность)? Следующий код работает, но кажется немного многословным.

  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 ответ

Решение

Вы можете сделать это:

val f : PartialFunction[(A, C), B] = { case (a, _) if func.isDefinedAt(a) => func(a) }
Другие вопросы по тегам