gpt4 book ai didi

javascript - sum(2)(3) 和 sum(2, 3) 两者的共同解决方案是什么

转载 作者:行者123 更新时间:2023-11-28 03:30:57 25 4
gpt4 key购买 nike

我在采访中被问到这个问题。

对于柯里化(Currying)风格的 sum(2)(3)

sum(a) {
return (b) {
return a + b;
}
}

求和 (2, 3)

sum(a, b) {
return a + b;
}

有没有可以同时使用的通用函数

最佳答案

这是一个可以从任何非柯里化(Currying)函数创建广义柯里化(Currying)函数的函数。它是在不使用任何 ECMAScript 6 语法的情况下编写的。无论原始函数期望的参数数量或提供给每个部分应用程序的参数数量如何,这都有效。

function sum (a, b) {
return a + b;
}

function product (a, b, c) {
return a * b * c;
}

function curry (fn) {
return function partial () {
return arguments.length >= fn.length
? fn.apply(this, arguments)
: partial.bind.apply(partial, [this].concat(Array.prototype.slice.call(arguments)));
};
}

var s = curry(sum);

console.log(s(1, 2));
console.log(s(1)(2));
console.log(s()()(1)()()(2));

var p = curry(product);

console.log(p(2, 3, 4));
console.log(p(2)(3)(4));
console.log(p()()(2)()()(3, 4));

关于javascript - sum(2)(3) 和 sum(2, 3) 两者的共同解决方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58191104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com