Курс по 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) и спира.

Навигация в курса

Рекурсия с multi-подпрограми   |   Степен