Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación funcional / Reducción / Exercises / Lista separada por comas
Solución: Lista separada por comas
Aquí tienes una posible solución para la tarea.
Código
my @words = 'Raku', 'is', 'fun';
say @words.reduce(-> $a, $b { "$a, $b" });🦋 Puedes encontrar el código fuente en el archivo comma-separated.raku.
Salida
Raku, is, funComentarios
Aquí el bloque construye un valor en lugar de elegir uno:
$aes la cadena ensamblada hasta el momento y$bes la palabra siguiente, y"$a, $b"las pega con una coma y un espacio.La primera llamada une
'Raku'e'is'enRaku, is; la segunda une eso con'fun'para darRaku, is, fun. Esta es la clase de unión con separador que el metaoperador[~]no puede expresar por sí solo.En código real recurrirías al método integrado
join, que hace exactamente esto:say @words.join(', ');imprime el mismoRaku, is, fun. La gracia del ejercicio es practicar cómo expresar la misma idea como un bloque dereduce.