currying in javascript es6

currying

currying 又稱「柯里化」。

何謂 currying ?

將多個參數(param),轉換成接收單一參數 (param) 的函數 (function)

currying 規則

將一個 N 元函式轉換成一個一元函式,這個一元函式再回傳一個一元函式

before currying

1
2
3
4
5
let sum = ((x, y, z) => {
return x + y + z;
});

sum(1, 2, 3); // returns 6

after currying

1
2
3
4
5
6
7
8
9
let sum = ((x) => {
return ((y) => {
return ((z) => {
return x + y + z;
});
});
});

sum(1)(2)(3); // return 6