chunk
Devuelve un iterable perezoso de listas, cada una con hasta size elementos consecutivos.
Lección
chunk agrupa una secuencia plana en bloques de tamaño fijo:
repartir cartas en manos, paginar un conjunto de resultados, enviar
trabajo a una API en lotes de n. Solo mantiene en memoria
size elementos a la vez antes de emitir cada lista, así que
sigue siendo perezoso y de memoria acotada incluso sobre una fuente
enorme; únicamente el último chunk puede quedarse corto, si la fuente no
se divide de forma exacta.
La versión asíncrona, chunkAsync, espera size
elementos antes de producir cada chunk; combínala con
.concurrent(n) aguas arriba para resolver de forma
concurrente el trabajo asíncrono de un chunk entero.
Demo 1 · Fundamentos
10 elementos troceados de 3 en 3 dejan un último chunk más corto:
Demo 2 · Asíncrono
Pruébalo tú
Ejercicio: reparte las cartas en manos de 3.