Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Rekursio
La baza kazo
Ĉiu rekursia subprogramo bezonas bazan kazon: kondiĉon, sub kiu ĝi redonas respondon sen voki sin denove. Sen ĝi, la subprogramo vokus sin senfine.
En la faktorialo, la baza kazo estis «$n estas
1 aŭ malpli». Jen alia ekzemplo, nombranta malsupren ĝis
nulo:
sub countdown($n) {
return if $n < 1; # baza kazo: haltu
say $n;
countdown($n - 1); # rekursia paŝo
}
countdown(3);La programo presas:
3
2
1La unua linio estas la baza kazo: kiam $n falas sub
1, la subprogramo tuj revenas kaj la ĉeno de vokoj finiĝas.
La rekursia paŝo ĉiam moviĝas al la baza kazo, vokante
countdown kun pli malgranda nombro.
Se vi forgesas la bazan kazon, aŭ la paŝoj neniam atingas ĝin, la rekursio neniam haltas kaj la programo fine malsukcesas. Ĝusta rekursia subprogramo ĉiam havas du aferojn: bazan kazon, kiu finas la rekursion, kaj paŝon, kiu alproksimigas ĉiun vokon al ĝi.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Rekursio | Kvizo — La baza kazo →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.