Javascript 写一个函数来打印取wa中参数的和:和(2)(3)并输出5

Javascript 写一个函数来打印取wa中参数的和:和(2)(3)并输出5,javascript,Javascript,写一个函数来打印sum,它以如下方式接受参数:sum(2)(3)和outputs 5您要查找的是函数的curry ES6 ES5 通常情况下,你可以做到这一点 function sum(x) { return y => { return x + y; } } 但它缺乏可扩展性。 如果要计算总和(2)(3)(5),此函数就是不起作用 你必须把它改成 function sum(x) { return y => { return z

写一个函数来打印sum,它以如下方式接受参数:sum(2)(3)和outputs 5

您要查找的是函数的curry

ES6

ES5


通常情况下,你可以做到这一点

function sum(x) {
    return y => {
        return x + y;
    }
}
但它缺乏可扩展性。 如果要计算总和(2)(3)(5),此函数就是不起作用

你必须把它改成

function sum(x) {
    return y => {
        return z => {
           return x + y + z;
        }
    }
}
这是一个常见的解决方案,结合了递归和一些小技巧

function sum(x) {
    var result = x;
    function adder(y) {
        result += y;
        return adder;
    }
    adder.toString = function() {
        return result;
    };
    return adder;
}

我们能看看到目前为止你都试了些什么吗?
function sum(x) {
    return y => {
        return z => {
           return x + y + z;
        }
    }
}
function sum(x) {
    var result = x;
    function adder(y) {
        result += y;
        return adder;
    }
    adder.toString = function() {
        return result;
    };
    return adder;
}