Curso de Raku / Avanzado / Control de flujo / gather y
take / Exercises / Cuadrados
Solución: Cuadrados
Aquí tienes una posible solución para la tarea.
Código
my @squares = gather for 1..6 {
take $_ ** 2 if $_ %% 2;
};
say @squares;🦋 Encuentra el programa en el archivo squares.raku.
Salida
[4 16 36]Comentarios
La condición
if $_ %% 2decide si tomar, y$_ ** 2decide que tomar. Solo los números pares2,4,6pasan la condición.Sus cuadrados
4,16,36son los unicos valores pasados atake, así quegatherrecopila exactamente esos. Hacer el filtrado y la transformación juntos en un solotakees algo que un simplemapno puede expresar de manera tan limpia.