Variadic curried sum function

前端 未结 16 1856
清酒与你
清酒与你 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条回答
  •  -上瘾入骨i
    2020-11-22 07:21

    function add(a) {
        let curry = (b) => {
            a += b
            return curry;
        }
        curry[Symbol.toPrimitive] = (hint) => {
            return a;
        }
        return curry
    }
    
    console.log(+add(1)(2)(3)(4)(5));        // 15
    console.log(+add(6)(6)(6));              // 18
    console.log(+add(7)(0));                 // 7
    console.log(+add(0));                    // 0
    

提交回复
热议问题