Composición en JavaScript
Funciones pequeñas, combinadas de izquierda a derecha o al revés.
const pipe = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);
const compose = (...fns) => (value) =>
fns.reduceRight((acc, fn) => fn(acc), value);
const trim = (s) => s.trim();
const lower = (s) => s.toLowerCase();
const hyphenate = (s) => s.replaceAll(" ", "-");
const slugify = pipe(trim, lower, hyphenate);
const slugifyBackwards = compose(hyphenate, lower, trim);
console.log(slugify(" Language Basics "));
console.log(slugifyBackwards(" Async Patterns "));
console.log(pipe()( "unchanged"));
Cómo funciona
pipese lee en el orden en que pasan las cosas.composees el orden matemático, aplicado de derecha a izquierda.- Ambos son un reduce de una línea sobre la lista de funciones.
Palabras clave y builtins usados aquí
const
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 518
- Tokens
- 158
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 90 segundos.
Paso 1 de 5 en Componer funciones; paso 5 de 16 en Funciones y patrones.