Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Lambdas und Closures / Exercises / Ein Zähler
Lösung: Ein Zähler
Hier ist eine mögliche Lösung der Aufgabe.
Code
sub make-counter($step) {
my $n = 0;
return sub { $n += $step };
}
my &count = make-counter(10);
say count();
say count();
say count();🦋 Du findest den Quellcode in der Datei counter.raku.
Ausgabe
10
20
30Kommentare
Die Closure fängt zwei Dinge aus
make-counterein: den Parameter$stepund die private Variable$n. Beide bleiben am Leben, nachdemmake-counterzurückgekehrt ist.Jeder Aufruf addiert
$stepzu$nund liefert die neue Summe. Ein mit einer anderen Schrittweite gebauter Zähler würde stattdessen um diesen Betrag vorrücken.
Kursnavigation
← Ein Zähler | Ein Multiplikator →