Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación funcional / Reducción / Exercises / La cadena más larga

Solución: La cadena más larga

Aquí tienes una posible solución para la tarea.

Código

my @animals = 'cat', 'elephant', 'dog', 'fox';

say @animals.reduce(-> $a, $b { $b.chars > $a.chars ?? $b !! $a });

🦋 Puedes encontrar el código fuente en el archivo longest-string.raku.

Salida

elephant

Comentarios

  1. El bloque se queda con el más largo de sus dos argumentos: $a es la cadena más larga vista hasta el momento, $b es la siguiente, y el ternario devuelve la que tenga más caracteres.

  2. reduce arrastra ese ganador como $a a la llamada siguiente, así que tras recorrer la lista entera el valor acumulado es la más larga de todas: elephant.

La cadena más larga   |   Lista separada por comas