javascript - javascript 中的函数式编程 - add(a)(b)(c)

标签 javascript functional-programming

我正在尝试用 js 进行函数式编程。

我理解 add(3)(5) 会是:

function add(x) {
    return function(y) {
        return x + y;
    };
}

我该如何更改此函数,使 add(3)(5)(7)(8) 返回 23 或 add(1)(2)(3) 返回 6?

最佳答案

你可以这样做。

function add(x) {
  return function(y) {
    if (y) {
      return add(x+y);
    }
    return x;
  };
}

在这里,你想调用多少次都可以。

add(4)();
add(4)(5)(9)();
add(1)(2)(3)....(n)();

Example link

关于javascript - javascript 中的函数式编程 - add(a)(b)(c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689707/

相关文章:

haskell - 如何在 Elm(或 Haskell)中的函数之间共享数据

php - 清理用户提交的文本以使其良好且可读?

JavaScript addEventListener() 未按预期工作

list - 如何仅从列表中获取唯一元素?

scala - scala 中信号的两种实现 - 一种在文本更改时触发事件,另一种则不触发

python - 嵌入式用户定义表达式的安全实现策略

javascript - 如何在 Kotlin/JavaScript 中制作按钮点击监听器事件?

javascript - 进一步点击会发生什么

javascript - 我正在尝试使用模板文字在 html 中显示来自 javascript 的文本,但元素未定义,我该怎么办?

Lua 变长函数参数为 nil