Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Rekursija / Rekursija ar multi apakšprogrammām

Viktorīna — Rekursija ar multi apakšprogrammām

Doti multi fact(0) { 1 } un multi fact($n) { $n * fact($n - 1) }. Kāda loma ir kandidātam multi fact(0)?

1Tas ir bāzes gadījums — kandidāts, ko despečs izvēlas, kad arguments ir 0
0Tas uzstāda noklusēto vērtību, kas tiek atgriezta katram argumentam
0Tas izpildās pirmais katrā izsaukumā, pirms otrā kandidāta
0Tā ir obligāta sintakse, ko Raku izpildes laikā ignorē

Literālis 0 parakstā liek šim kandidātam sakrist tikai tad, kad arguments ir tieši 0. Tas ir bāzes gadījums, izteikts kā sava apakšprogramma: kamēr arguments ir lielāks, despečs turpina izvēlēties multi fact($n), un, tiklīdz rekursija sasniedz 0, tas pārslēdzas uz multi fact(0) un apstājas.

Kursa navigācija

Rekursija ar multi apakšprogrammām   |   Pakāpe