Função JS Curry com recursão
Leia antes de marcá-lo como duplicado.
Não estou pedindo uma única chamada de curry.
Esta função multiplica, multiplicação (4,4,4) // 64
function multiplication(...args) {
return args.reduce((accum, val) => accum * val, 1)
}
Mas Estou tentando conseguir outra coisa ...
Essa mesma função deve multiplicar também os parênteses da função curry. por exemplo.
/*
which return the multiplication of three numbers.
The function can be called in any of the following forms:
multiply(2, 3)(4) => 24
multiply(2)(3, 4) => 24
multiply(2)(3)(4) => 24
multiply(2, 3, 4) => 24
*/
Por favor, ajude.
Depois de mexer em muito código e ler algumas respostas da pilha. Finalmente eu vim com. Mas ainda não satisfaz issomultiply(2)(3, 4) => 24
Mas funciona bem para o resto dos casos
multiply(2,3,4)
multiply(2,3)(4)
multiply(2)(3)(4)
var multiply = function(...args) {
if (args.length === 3) {
return args[0] * args[1] * args[2];
} else {
return function() {
args.push([].slice.call(arguments).pop());
return multiply.apply(this, args);
};
}
}
enquantomultiply(2)(3, 4) => 24 fail