Курс языка программирования 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

Комментарии

  1. Каждый вызов .emit доставляет значение подключению, а оно прибавляет его к $total.

  2. После трёх выдач сумма равна 10 + 20 + 30, то есть 60.

Навигация по курсу

Сумма живого потока   |   react и whenever