Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione reattiva / Supply live e su richiesta / Exercises / Due collegamenti
Soluzione: Due collegamenti
Ecco una possibile soluzione del compito.
Codice
my $s = Supply.from-list(1, 2, 3);
my @doubled;
my @tripled;
$s.map(* * 2).tap(-> $v { @doubled.push($v) });
$s.map(* * 3).tap(-> $v { @tripled.push($v) });
say @doubled;
say @tripled;🦋 Trova il programma nel file two-taps.raku.
Output
[2 4 6]
[3 6 9]Commenti
Supply.from-listè su richiesta, quindi ripropone la propria sequenza completa per ogni presa, in modo indipendente.Questo permette alle due prese di far girare pipeline diverse sulla stessa sorgente: una raddoppia, una triplica. Ciascuna vede tutto
1, 2, 3, quindi i risultati sono[2 4 6]e[3 6 9].