Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Ricorsione / Una subroutine ricorsiva

Quiz — Ricorsione

Cosa stampa il programma seguente?

sub sum($n) {
    $n <= 0 ?? 0 !! $n + sum($n - 1);
}

say sum(4);
04
110
024
00

sum(4) è 4 + sum(3), che si srotola in 4 + 3 + 2 + 1, cioè 10. La ricorsione si ferma al caso base, quando $n raggiunge 0.

Una subroutine ricorsiva   |   Il caso base