Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Riduzione / Exercises / Lista separata da virgole
Soluzione: Lista separata da virgole
Ecco una possibile soluzione del compito.
Codice
my @words = 'Raku', 'is', 'fun';
say @words.reduce(-> $a, $b { "$a, $b" });🦋 Trova il programma nel file comma-separated.raku.
Output
Raku, is, funCommenti
Qui il blocco costruisce un valore invece di sceglierne uno:
$aè la stringa assemblata finora e$bè la parola successiva, e"$a, $b"le incolla con una virgola e uno spazio.La prima chiamata unisce
'Raku'e'is'inRaku, is; la seconda unisce quello con'fun'per dareRaku, is, fun. È il genere di unione consapevole del separatore che il metaoperatore[~]non sa esprimere da solo.Nel codice vero ricorreresti al metodo incorporato
join, che fa esattamente questo —say @words.join(', ');stampa lo stessoRaku, is, fun. Il senso dell’esercizio è esercitarsi a esprimere la stessa idea come blocco direduce.