Currificación y aplicación parcial en JavaScript
Fijar algunos argumentos ahora y el resto después.
const scale = (factor) => (value) => value * factor;
const double = scale(2);
console.log(double(21), [1, 2, 3].map(scale(10)));
function format(prefix, unit, value) {
return `${prefix}${value}${unit}`;
}
const asPercent = format.bind(null, "", "%");
console.log(asPercent(97.5));
const curry3 = (fn) => (a) => (b) => (c) => fn(a, b, c);
console.log(curry3(format)("~")("tpm")(104));
Cómo funciona
- Una función currificada toma un argumento y devuelve una función.
bindhace aplicación parcial, y además fijathis.- El orden de los argumentos decide qué tan reutilizable es la parcial.
Palabras clave y builtins usados aquí
constdoublefunctionreturn
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 387
- Tokens
- 144
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 82 segundos.
Paso 2 de 5 en Componer funciones; paso 6 de 16 en Funciones y patrones.