CoffeeScript のカリー化
個人的に CoffeeScript が再燃してる今日このごろ.
CoffeeScript の関数定義はこんな感じ
# CoffeeScript add = (a, b) -> a + b // JavaScript var add; add = function(a, b) { return a + b; };
続いてカリー化してみる
add = (a) -> (b) -> a + b add(2)(3) # 5
最近 Haskell にはまってるんで,できればこんな感じで呼び出したい.
add :: Num a=> a -> a -> a add a b = a + b main = print (add 2 3) -- 5
いろいろ試してみる...
# OK add(2)(3) add(2) 3 (add 2)(3) (add 2) 3 # Error add 2(3) add 2 3 # OK increment = add(1) increment 3 # 4
結論
Haskell っぽく呼ぶのは無理っぽい.
add(2)(3)
これがベターなのか.