函式的合成與柯里化

zhouzhou發表於2019-01-23

函式的合成

如果一個值要經過多個函式,才能變成另外一個值,就可以把所有中間步驟合併成一個函式,這叫做”函式的合成”(compose)。

const compose = function (f, g) {
  return function (x) {
    return f(g(x));
  };
}

柯里化

所謂”柯里化”,就是把一個多引數的函式,轉化為單引數函式。

// 柯里化之前
function add(x, y) {
  return x + y;
}

add(1, 2) // 3

// 柯里化之後
function addX(y) {
  return function (x) {
    return x + y;
  };
}

addX(2)(1) // 3

參考連結:
JS中的柯里化 及 精巧的自動柯里化實現

相關文章