typestar

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

  1. pipe se lee en el orden en que pasan las cosas.
  2. compose es el orden matemático, aplicado de derecha a izquierda.
  3. Ambos son un reduce de una línea sobre la lista de funciones.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →