Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Lambda’s en closures / Closures
Quiz — Closures
Wat drukt het volgende programma af?
sub make-acc {
my $total = 0;
return sub ($x) { $total += $x };
}
my &add = make-acc;
add(10);
add(20);
say add(5);| 0 | 5 |
| 0 | 30 |
| 1 | 35 |
| 0 | 0 |
De teruggegeven subroutine sluit om $total heen, dus
delen alle drie de aanroepen dezelfde variabele. De eerste twee
aanroepen brengen die op 30; de derde telt er
5 bij op en drukt de lopende som af, 35.
Cursusnavigatie
← Closures | Een teller →