Variadic curried sum function

前端 未结 16 2118
清酒与你
清酒与你 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:32

    To make sum(1) callable as sum(1)(2), it must return a function.

    The function can be either called or converted to a number with valueOf.

    function sum(a) {
    
       var sum = a;
       function f(b) {
           sum += b;
           return f;
        }
       f.toString = function() { return sum }
       return f
    }
    

提交回复
热议问题