Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Reaktive Programmierung / Supplies
Ein Supply umformen
Ein Supply lässt sich vor dem Anzapfen umformen, ganz ähnlich wie
eine Liste. Methoden wie map und grep erzeugen
ein neues Supply, dessen Werte die umgeformten
sind:
my @out;
Supply.from-list(1, 2, 3).map(* * 10).tap(-> $v { @out.push($v) });
say @out; # [10 20 30]Das map(* * 10) baut ein neues Supply, das das Zehnfache
jedes ursprünglichen Wertes aussendet, und die Zapfstelle sammelt diese
in @out.
grep filtert ein Supply und gibt nur die Werte weiter,
für die sein Block wahr ist:
my @out;
Supply.from-list(1, 2, 3, 4, 5, 6).grep(* %% 2).tap(-> $v { @out.push($v) });
say @out; # [2 4 6]Da jede Umformung wieder ein Supply liefert, können Sie sie aneinanderreihen und so eine kleine Pipeline bauen, die auf den Strom reagiert:
my @out;
Supply.from-list(1..6).grep(* %% 2).map(* ** 2).tap(-> $v { @out.push($v) });
say @out; # [4 16 36]Das ist derselbe Wortschatz aus map und grep, den Sie von Listen kennen, angewandt auf Werte, die im Lauf der Zeit eintreffen. Das Supply schiebt; Ihre Pipeline formt, was herauskommt.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Quiz — Supplies | Quiz — Ein Supply umformen →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.