Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Reduktion / Exercises / Kommagetrennte Liste

Lösung: Kommagetrennte Liste

Hier ist eine mögliche Lösung der Aufgabe.

Code

my @words = 'Raku', 'is', 'fun';

say @words.reduce(-> $a, $b { "$a, $b" });

🦋 Du findest den Quellcode in der Datei comma-separated.raku.

Ausgabe

Raku, is, fun

Kommentare

  1. Hier baut der Block einen Wert, statt einen auszuwählen: $a ist die bisher zusammengesetzte Zeichenkette und $b das nächste Wort, und "$a, $b" klebt sie mit einem Komma und einem Leerzeichen zusammen.

  2. Der erste Aufruf verbindet 'Raku' und 'is' zu Raku, is; der zweite verbindet das mit 'fun' zu Raku, is, fun. Das ist genau die Art von Verbinden mit Trennzeichen, die der Metaoperator [~] allein nicht ausdrücken kann.

  3. In echtem Code würden Sie zur eingebauten Methode join greifen, die genau das tut — say @words.join(', '); gibt dasselbe Raku, is, fun aus. Sinn der Übung ist es, denselben Gedanken als reduce-Block auszudrücken.

Kursnavigation

Kommagetrennte Liste   |   Daten-Feeds