Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Rekursija
Bāzes gadījums
Katrai rekursīvai apakšprogrammai vajadzīgs bāzes gadījums: nosacījums, pie kura tā atgriež atbildi, neizsaucot sevi vēlreiz. Bez tā apakšprogramma izsauktu sevi mūžīgi.
Faktoriālā bāzes gadījums bija «$n ir 1 vai
mazāk». Lūk, vēl viens piemērs — skaitīšana atpakaļ līdz nullei:
sub countdown($n) {
return if $n < 1; # base case: stop
say $n;
countdown($n - 1); # recursive step
}
countdown(3);Programma izdrukā:
3
2
1Pirmā rinda ir bāzes gadījums: kad $n noslīd zem
1, apakšprogramma uzreiz atgriežas un izsaukumu ķēde
beidzas. Rekursīvais solis vienmēr virzās uz bāzes
gadījumu, izsaucot countdown ar mazāku skaitli.
Ja bāzes gadījumu aizmirstat vai soļi to nekad nesasniedz, rekursija neapstājas nekad un programma galu galā avarē. Pareizai rekursīvai apakšprogrammai vienmēr ir divas lietas: bāzes gadījums, kas rekursiju beidz, un solis, kas katru izsaukumu tam pietuvina.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Viktorīna — Rekursija | Viktorīna — Bāzes gadījums →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.