Curso de Raku / Avanzado / Control de flujo / gather y
take / Exercises / Repetir cada
número
Solución: Repetir cada número
Aquí tienes una posible solución para la tarea.
Código
my @result = gather for 1..4 -> $n {
take $n for 1..$n;
};
say @result;🦋 Encuentra el programa en el archivo collect-the-evens.raku.
Salida
[1 2 2 3 3 3 4 4 4 4]Comentarios
Nada obliga a un único
takepor iteración. Aquí eltake $n for 1..$ninterno ejecutatakeun numero diferente de veces en cada pasada, que es exactamente la flexibilidad que hace agather/takemás poderoso que un simplemap.El bucle externo usa una variable con nombre
-> $na propósito. Si escribieramos el bucle interno con$_, elforinterno reasignaría$_a su propio contador, y tomariamos el contador en lugar del numero actual.gathersimplemente recopila cada valor que fue tomado, en orden, así que@resulttermina conteniendo1, luego dos2, luego tres3, y luego cuatro4.
Navegación del curso
← Repetir cada número | Cuadrados →