私はGroovyを始めたばかりで、Haskell、C ++、および少しのJavaのバックグラウンドから来ています。
次のようなクロージャーを書いたとしましょう。
def mult = { x, y -> x * y }
後で書くことができますmult(3,5)
。
しかし、書くmult(3)
と、コンパイルエラーが発生します。
もちろん書くこともできますmult.curry(3)
が、それは少し醜いようです。
だから私はこのアプローチを試すことができます:
def mult = { x -> { y -> x * y }}
これでmult(3)
問題なく動作しますが、2つの数値を乗算するには、2つの数値を乗算するように書き込む必要がありmult(3)(5)
ます。
私が欲しいのは、両方の長所です。mult(3)
、、を書けるようにmult(3,5)
なりたいですmult(3)(5)
。とにかく、クロージャをこのように動作させるには?