4
我剛剛開始使用Groovy,來自Haskell,C++和一點Java的背景。Groovy關閉自動currying
可以說,我寫像下面這樣的封閉:
def mult = { x, y -> x * y }
後來我就可以寫mult(3,5)
。
但是,如果我寫mult(3)
,我得到一個編譯錯誤。
我當然可以寫mult.curry(3)
,但這對我來說似乎有點難看。
於是我可以試試這個方法:現在
def mult = { x -> { y -> x * y }}
,mult(3)
工作正常,但對兩個數相乘,我必須寫mult(3)(5)
到兩個數相乘。
我想要的是兩全其美。我希望能夠寫mult(3)
,mult(3,5)
和mult(3)(5)
。無論如何要關閉這樣的行爲?