typestar

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

  1. Una función currificada toma un argumento y devuelve una función.
  2. bind hace aplicación parcial, y además fija this.
  3. El orden de los argumentos decide qué tan reutilizable es la parcial.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 5 en Componer funciones; paso 6 de 16 en Funciones y patrones.

← Anterior Siguiente →