Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / Живи supply и supply при поискване / Exercises / Две свързвания
Решение: Две свързвания
Ето едно възможно решение на задачата.
Код
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;🦋 Намерете програмата във файла two-taps.raku.
Изход
[2 4 6]
[3 6 9]Коментари
Supply.from-listработи при поискване, така че пуска пълната си последователност за всяко включване независимо.Това позволява на двете включвания да изпълняват различни конвейери върху един и същ източник: единият удвоява, другият утроява. Всяко вижда всички
1, 2, 3, така че резултатите са[2 4 6]и[3 6 9].