repeat

Emite el mismo valor n veces — una fuente perezosa y finita para rellenar y emparejar.

Iterable<T> repeat<T>(int n, T value)

Lección

repeat(n, value) emite value exactamente n veces y se detiene: es finito y perezoso, como el resto de generadores de esta sección. Ten en cuenta que repite el mismo valor (o la misma referencia de objeto, si no es un primitivo) cada vez; si necesitas un valor nuevo en cada iteración, genéralo aparte (por ejemplo, con un map sobre el resultado) en lugar de esperar que repeat llame a una función de fábrica.

Resulta más útil combinado con otra cosa: aplícale zip con una secuencia de longitud variable para estampar una etiqueta constante en cada elemento, o usa fx(...).join() para construir una cadena separadora de ancho fijo. repeat(0, value) es una forma válida y perfectamente normal de obtener un iterable vacío.

Si lo que quieres es repetir una secuencia entera en vez de un único valor —y seguir indefinidamente en lugar de un número fijo n de veces— eso es cycle, que veremos a continuación.

Demo 1 · Fundamentos

Demo 2 · Emparejar una constante con una secuencia variable

repeat emite el MISMO valor cada vez: combínalo con zip para estampar una constante sobre una secuencia de longitud variable:

Pruébalo tú

Ejercicio: construye una List<int> de 5 elementos con el valor 7 usando repeat.

Relacionado: range — una secuencia perezosa de enteros crecientes o decrecientes · cycle — repite una secuencia entera, para siempre · zip — empareja, se usa a menudo junto a repeat · fx — la cadena en la que repeat suele envolverse