Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Лямбди та замикання / Вправи / Накопичувач

Розв’язання: Накопичувач

Ось одне з можливих розв’язань задачі.

Код

sub make-accumulator {
    my $sum = 0;
    return -> $x { $sum += $x };
}

my &acc = make-accumulator;
acc(10);
say acc(5);

🦋 Знайдіть програму у файлі accumulator.raku.

Вивід

15

Коментарі

  1. Замикання захоплює $sum, яка виживає між викликами.

  2. acc(10) робить суму рівною 10; acc(5) додає п’ять і повертає 15.

Навігація курсом

Накопичувач   |   Згортка