Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Реактивне програмування / Живі supply та supply на вимогу / Вправи / Два підключення
Розв’язання: Два підключення
Ось одне з можливих розв’язань задачі.
Код
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].