javascript - 求咖喱函数的总和?
问题描述
var curry = function (func) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return function (e) {
return func (a, b, c, d, e);
}
}
}
}
}
}
var getSum=curry(a+b+c+d+e);
console.log(getSum(15)(20)(25)(30)(35));
到目前为止,这是我的代码,但它说 a 没有定义,我不知道如何修复它。如果我使用 Math.max 执行此操作,它可以工作,但我怎样才能实现相同的目标,但使用总和而不是最大值?
解决方案
通过定义一个对其参数求和的函数,就像Math.max
找到其参数的最大值一样:
const curry = function (func) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return function (e) {
return func (a, b, c, d, e);
};
};
};
};
};
};
const getSum = (...args) => {
return args.reduce((sum, value) => sum + value, 0);
};
console.log(curry(getSum)(15)(20)(25)(30)(35));
推荐阅读
- c# - 出于某种原因,当我通过代码要求它时,我的动画没有播放
- python - 如何创建数据集的连续分布?
- reactjs - 如何在 Laravel 项目中使用 React 设置热重载?
- opencv - 如何在 OpenCV 中使用 inRange 执行准确的阈值处理
- java - 如何在 JEditorPane 上应用样式?
- python - 如何连接 N 个列表并对 Python 中列表列表的 N 个元素求和?
- google-chrome - 增加谷歌搜索页面
- sas - Proc SQL 将十进制转换为分钟和秒 (SAS)
- bookdown - bookdown 中的 Cookie 政策
- python - Python 库“nsetools”不能在 linux 上运行