巨人の肩の上に登る

先人の積み重ねた発見に基づいて、なにかを発見しようとすることを指す。

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)

これがベターなのか.