Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Лямбды и замыкания / Exercises / Счётчик
Решение: Счётчик
Вот один из возможных вариантов решения задачи.
Код
sub make-counter($step) {
my $n = 0;
return sub { $n += $step };
}
my &count = make-counter(10);
say count();
say count();
say count();🦋 Исходный код можно найти в файле counter.raku.
Вывод
10
20
30Комментарии
Замыкание захватывает из
make-counterдве вещи: параметр$stepи скрытую переменную$n. Обе остаются живыми после того, какmake-counterвернулся.Каждый вызов прибавляет
$stepк$nи возвращает новый итог. Счётчик, построенный с другим шагом, продвигался бы на другую величину.
Навигация по курсу
← Счётчик | Умножитель →