tap
Llama a una función con un valor por su efecto secundario y luego devuelve el valor sin cambios.
Lección
tap es data-first: tap(f, value) ejecuta
f(value) —normalmente un print, una llamada de
log u otro efecto secundario— y luego te devuelve value tal
cual. Existe para que puedas espiar un valor sin romper la expresión
de la que forma parte: envuelve cualquier valor individual en
tap y el código de alrededor no necesita cambiar en absoluto.
tap opera sobre un valor cada vez. Su pariente
peek es la versión para pipelines:
ejecuta un efecto secundario por cada elemento de un Iterable
conforme se va tirando de él. Para tener un «logger» reutilizable y
currificado, cierras tú mismo sobre f:
(v) => tap(f, v), como se ve abajo.
Demo 1 · Fundamentos
Demo 2 · Registrar dentro de un pipe
Cerrar sobre tap te da un «logger» currificado y reutilizable
que puedes soltar en una cadena pipe para inspeccionar valores
intermedios sin alterar el flujo de datos:
Pruébalo tú
Ejercicio: usa tap para imprimir cada valor a su paso por
el callback de map, antes de que se multiplique por 10.