Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Рекурсия / Рекурсия с multi-подпрограми
Тест — Рекурсия с multi-подпрограми
Имаме multi fact(0) { 1 } и
multi fact($n) { $n * fact($n - 1) }. Каква роля играе
кандидатът multi fact(0)?
| 1 | Той е базовият случай — кандидатът, който диспечирането избира, когато аргументът е 0 |
| 0 | Задава стойност по подразбиране, връщана за всеки аргумент |
| 0 | Изпълнява се пръв при всяко извикване, преди другия кандидат |
| 0 | Задължителен синтаксис е, който Raku пренебрегва по време на изпълнение |
Литералът 0 в сигнатурата прави така, че този кандидат
да съвпада само когато аргументът е точно 0. Това е
базовият случай, изразен като собствена подпрограма: докато аргументът е
по-голям, диспечирането продължава да избира
multi fact($n), а щом рекурсията стигне 0, то
се превключва към multi fact(0) и спира.