Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Lambda e chiusure / Chiusure
Quiz — Chiusure
Cosa stampa il programma seguente?
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 |
La subroutine restituita si chiude su $total, quindi
tutte e tre le chiamate condividono la stessa variabile. Le prime due la
portano a 30; la terza aggiunge 5 e stampa il
totale corrente, 35.
Navigazione del corso
← Chiusure | Un contatore →