- Когда функция вызывает саму себя, то это называется рекурсией
- В каждой рекурсивной функции должно быть 2 случая: базовый и рекурсивный
- Стек поддерживает 2 операции: занесение и извлечение элементов
- Все вызовы функций сохраняются в стеке
- Если стек станет очень большим, она займет слишком много памяти
- Тогда можно переписать код с использованием циклов, либо воспользоваться хвостовой рекурсией