Миф или правда
Правда ли, что рекурсивный вызов — это прыжок к началу функции?
Миф
Рекурсивный вызов — это прыжок к началу функции
На самом деле
Нет: каждый вызов — новая копия функции со своими переменными; прежние вызовы ждут её завершения.
Рекурсия — что это на самом деле
Приём, когда функция вызывает саму себя, но для меньшей задачи. Обязательны две части: базовый случай — ответ известен сразу, без нового вызова — и рекурсивный шаг, сводящий задачу к меньшей. Без базового случая вызовы никогда не закончатся.
Вычисление, в котором функция определена через саму себя. Каждый вызов создаёт в стеке новый кадр со своими параметрами и локальными переменными; глубина ограничена — в Python предел по умолчанию 1000 вызовов, дальше RecursionError. Любая…
Аналогия: Матрёшка: внутри каждой — такая же, но меньше, и так до самой маленькой, которая уже не открывается.
Полное определение →Это понятие вводят примерно 15-17 лет (9-11 класс).