Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Рекурсія
Базовий випадок
Кожній рекурсивній підпрограмі потрібен базовий випадок: умова, за якої вона повертає відповідь, не викликаючи себе знову. Без нього підпрограма викликала б себе вічно.
У факторіалі базовим випадком було «$n дорівнює
1 або менше». Ось інший приклад — зворотний відлік до
нуля:
sub countdown($n) {
return if $n < 1; # базовий випадок: зупинка
say $n;
countdown($n - 1); # рекурсивний крок
}
countdown(3);Програма друкує:
3
2
1Перший рядок є базовим випадком: коли $n падає нижче за
1, підпрограма негайно повертається, і ланцюжок викликів
завершується. Рекурсивний крок завжди рухається до
базового випадку, викликаючи countdown із меншим
числом.
Якщо ви забудете базовий випадок або кроки ніколи його не досягнуть, рекурсія не зупиниться, і програма зрештою впаде. Правильна рекурсивна підпрограма завжди має дві речі: базовий випадок, що завершує рекурсію, і крок, який наближає кожен виклик до нього.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Тест — Рекурсія | Тест — Базовий випадок →
💪 Або перейдіть одразу до вправ цього розділу.