¿Puedo dar 2 argumentos si hay varias funciones lambda en javascripts? tengo el siguiente código
var twice = (x) => { return x *x; } var lambda = (b) => { (a) =>{ return b(b(a)); } }; console.log(lambda(twice, 5));esto no funcionará, y podría usar
var lambda = (b,a) => { return b(b(a)); };y funcionará, pero ¿puedo usar una expresión lambda separada y darles argumentos?
Puede reenviar argumentos a una función como esta:
const twice = x => x * x; const invokeFunctionWithArgs = (fn, ...args) => fn(...args); console.log(invokeFunctionWithArgs(twice, 5)); // 25Sí, aprovecharía los cierres para que la función interna devuelta al invocar lambda() pueda mantener una referencia a su entorno léxico circundante.
Luego llama a dicha función interna con el valor deseado lambda(twice)(5) , en este caso, 5 .
var twice = (x) => { return x *x; } var lambda = (b) => { return (a) => { return b(b(a)); } }; console.log( lambda(twice)(5) ); // -> 625