如何编写“sum(2,3)”和“sum(2)(3)”的输出为5 的函数
任何人都可以帮我写这个函数编写一个函数,其中“sum(2,3)”和“sum(2)(3)”的输出将是5
我认为我们需要更近距离地编写函数!
语法如下: sum(2)(3)
与currying有关。 这意味着您需要在main函数内返回另一个函数以获得所需的结果。
这是一个很好的video关于Youtube上的 currying ,我从中学到了很多东西。
function sum(a){ if (arguments.length == 1) { return function(b){ return a + b; } } else { return Object.keys(arguments).reduce((a,b) => arguments[a] + arguments[b]); } } console.log(sum(2,3)); console.log(sum(2)(3));