n+k パターンを unapply 経由で scala のアクティブ パターンとして実装できると思ったのですが、失敗するようですunspecified value parameter: k
object NPlusK {
def apply(n : Int, k : Int) = {
n + k
}
def unapply(n : Int, k : Int) = {
if (n > 0 && n > k) Some(n - k) else None
}
}
object Main {
def main(args: Array[String]): Unit = {
}
def fac(n: Int) : BigInt = {
n match {
case 0 => 1
case NPlusK(n, 1) => n * fac(n - 1)
}
}
}
Scalaでn + kパターンを実装することは可能ですか?その場合はどうすればよいですか?