関数リテラル(無名関数生成)がないとカリー化ができないことに気づいた
できるっしょ、と思ったけど、プログラムで動的に関数を生成することができないとカリー化ができないことがわかった。
scala> def base(x1: Int, x2: Int) = { x1 * x2} base: (x1: Int, x2: Int)Int scala> def curry(x1: Int) = { (x2: Int) => base(x1, x2) } curry: (x1: Int)Int => Int scala> curry(1) res0: Int => Int = <function1> scala> curry(1)(2) res1: Int = 2 scala> curry(2)(2) res2: Int = 4
そうか、Javaではできないのか。
1引数関数ほいほい