Curso de Raku / Apéndice 🆕 / Flujo y funciones / Subrutinas y estilo funcional / Exercises / Suma de los cuadrados pares
Solución: Suma de los cuadrados pares
Aquí tienes una posible solución para la tarea.
Código
say [+] (1..10).grep(* %% 2).map(* ** 2);🦋 Puedes encontrar el código fuente en el archivo sum-even-squares.raku.
Salida
220Comentarios
La cadena se lee de izquierda a derecha:
.grep(* %% 2)conserva los números pares,.map(* ** 2)eleva cada uno al cuadrado, y[+]reduce los cuadrados a su suma.Los números pares
2 4 6 8 10elevados al cuadrado dan4 16 36 64 100, que suman220.Los mismos pasos se pueden escribir como una tubería de flujo, donde
==>pasa cada resultado a la etapa siguiente, de modo que el flujo se lee de arriba abajo en lugar de como una cadena de métodos:(1..10) ==> grep(* %% 2) ==> map(* ** 2) ==> sum() ==> say();
Cada
==>alimenta con su lista izquierda la rutina siguiente, y el==> say()final imprime el total,220.