he implementado una función curry
esta manera:función de curry JavaScript
function curry (fn) {
var slice = Array.prototype.slice,
args = slice.apply(arguments, [1]);
return function() {
fn.apply(null, args.concat(slice.apply(arguments)));
};
}
Cuando utilizo la función anterior para hacer lo siguiente
function add (x, y) {
return x + y;
}
var inc = curry(add, 1);
console.log(inc(10));
registra undefined
. ¿No es 11 el resultado esperado? ¿Qué pasa con mi código?
Nota: Usando console.log(x, y)
dentro de los registros de función 1 10
. No entiendo por qué devuelve undefined
.
Actualmente no es curry, es una aplicación parcial. – jcubic
Sé que estoy reviviendo un hilo muy antiguo, pero ¿qué significa aplicar '[1]' como argumento a 'arguments'? –
¡Elimina la función pasada de la lista de argumentos! – monoceres