Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Lambda’s en closures / Exercises / Een accumulator

Oplossing: Een accumulator

Hier is een mogelijke oplossing voor de taak.

Code

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

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

🦋 Je kunt de broncode vinden in het bestand accumulator.raku.

Uitvoer

15

Opmerkingen

  1. De closure legt $sum vast, die tussen aanroepen blijft bestaan.

  2. acc(10) maakt de som 10; acc(5) telt er vijf bij op en geeft 15 terug.

Cursusnavigatie

Een accumulator   |   Reductie