Variadic curried sum function

前端 未结 16 2006
清酒与你
清酒与你 2020-11-22 06:33

I need a js sum function to work like this:

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

I heard it can\'t be done. But heard

16条回答
  •  無奈伤痛
    2020-11-22 07:16

    Not sure if I understood what you want, but

    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

提交回复
热议问题