Groovyで右からや指定した位置でカリー化する
軽い説明
メソッド | 説明 |
---|---|
#curry | 普通のカリー化(左から) |
#rcurry | 右からカリー化 |
#ncurry | 好きな場所をカリー化 |
補足
#rcurryの場合、上記のように二つの値でカリー化すると、右から二つ分をその順番でカリー化します。(c, dの順であってd, cの順でない点に注意)
本当に全部右からカリー化したいなら
func.rcurry(x).rcurry(y). …
とか
[35, 50].inject(func){ f, c -> f.rcurry(c) }
てな感じでしょうか。
ちなみに、#ncurryでindexを外れるとjava.lang.IllegalArgumentExceptionが発生します。まぁ、そうですよね。