Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Реактивное программирование / Живые supply и supply по требованию / Exercises / Сумма живого потока
Решение: Сумма живого потока
Вот один из возможных вариантов решения задачи.
Код
my $supplier = Supplier.new;
my $total = 0;
$supplier.Supply.tap(-> $v { $total += $v });
$supplier.emit(10);
$supplier.emit(20);
$supplier.emit(30);
say $total;🦋 Исходный код можно найти в файле live-sum.raku.
Вывод
60Комментарии
Каждый вызов
.emitдоставляет значение подключению, а оно прибавляет его к$total.После трёх выдач сумма равна
10 + 20 + 30, то есть60.