javascript - Variadic curried sum 函数

标签 javascript currying

我需要一个 js sum 函数来像这样工作:

sum(1)(2) = 3
sum(1)(2)(3) = 6
sum(1)(2)(3)(4) = 10 
etc.

听说不行。但是听说如果在sum前面加上+就可以了。 像 +sum(1)(2)(3)(4)
关于如何做到这一点有什么想法吗?

最佳答案

不确定我是否理解你想要的,但是

function sum(n) {
  var v = function(x) {
    return sum(n + x);
  };

  v.valueOf = v.toString = function() {
    return n;
  };

  return v;
}

console.log(+sum(1)(2)(3)(4));

JsFiddle

关于javascript - Variadic curried sum 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832891/

相关文章:

javascript - SAPUI5 - 数据绑定(bind)到现有 XML 表

JavaScript 无法识别保存已解析 JSON 的 var

使用 ISO C99 进行柯里化(Currying)/绑定(bind)

c - 这个熟悉的函数在 C 中是如何实现的呢?

ruby - 如何一一调用函数参数

javascript - 是否可以从跨浏览器跨操作系统的 Web 应用程序访问 USB?

javascript - 对鼠标悬停的图像部分进行取消模糊处理

javascript - 下划线_.every方法是否同步?

reflection - 使用反射检查分配给 interface{} 变量的函数签名

haskell - 如何在 Haskell 中应用偏函数