generated at
カリー化

多引数関数を「関数を返す関数」を使って実現すること

ts
const add = ( x , y ) => x + y

↓カリー化する

ts
const add = x => y => x + y

右辺を x => ( y => x + y ) とみると、「引数xを受け取って関数 y => x + yを返す関数」であることがわかる

関数の使い方
カリー化していない -> add(2,3)
カリー化している -> add(2)(3)

カリー化している関数だと以下のように(部分適用)関数を渡すことができる
もともと2引数だった関数に1つだけ関数を与えると、その引数を固定したような関数を得ることができる
xとyのうちxを2に固定したような関数が得られる
ある目的に特化した関数(2を足すことに特化した関数)を柔軟に作れるということと言える
ts
const add = x => y => x + y console.log(add(2)) // > y => x + y