- код реализации более лаконичный, но не всегда сразу понятный
- работает медленнее чем for петля (делал тест)
- есть ограничения по стаку, 9000-10000 позволительная глубина максимум если больше stackOverflow ошибка возникает
Вот делал реализацию функций, это сравнительный тест возведения 2-ки в степень 8500.
Одну функцию с помощью рекурсии, вторую с помощью for петли. Каждую из функций запускал 40 раз, чтобы подсчитать время которое требуется на выполнение. (результаты на картинке)
Как понимаю for петля также дополнительно оптимизируется движком (в данном случае в Node.Js).
Как Вы считаете стоит ли использовать рекурсию в целом?
Если да, то в каких случаях это будет оптимально?
Заранее благодарен за норм ответы =)

1. Нужно знать, как оптимизируется рекурсия и что такое хвостовая рекурсия и способен ли компилятор на её оптимизацию. Здесь зависит от языка и компилятора.
2. Для взятия в степень существует более оптимальный алгоритм, чем просто умножать на 2 много раз.
3. Нет, стараться втиснуть рекурсию без необходимости смысла нет.
ну... как бы в си++ оптимизаторы сами раскручивают в фор эту рекурсию... на сколько я помню, но если не много вызовов, то можно и рекурсию, а если от неё только стек разворачивается и разворачивается, то конечно жопа, особенно если сложные объекты. Но я так редко использую рекурсию со сложными объектами, что даже проблем как-то не встречал.
Проблема рекурсии в ее жоре памяти, если рам достаточно она быстрее чем луп
Рекурсия широко используется в функциональных языках. В обычных (императивных) языках рекурсию применяют по необходимости (точнее: если она существенно упрощает код).
И в функциональных языках обычно тоже есть циклы (хотя это нарушение функциональной парадигмы)
1 "стоит ли использовать рекурсию в целом?
Если да, то в каких случаях это будет оптимально?
В тех случаях, когда это будет оптимально!"
2 "Заранее благодарен за норм ответы =)"
Я игнорирую тексты людей, которые не в состоянии вместо картинки привести текст.
3 намек понятен?
Я тут че один кто не модаретор? куда всех дели то?
Я за цикл.
Но я не гуру программирования, которого надо слушать