Глупость.
Существует немало алгоритмов, которые в рекурсивной форме записывать намного проще и удобнее, чем в виде циклов. А в функциональных языках ты вообще без рекурсии прожить не сможешь.
Но надо понимать, что рекурсия - это дополнительные накладные расходы, а далеко не все компиляторы умеют автоматически преобразовывать хвостовую рекурсию в цикл. Так что осознанное решение об использовании рекурсии в императивных языках - это всегда компромисс между удобством и затратами ресурсов.
Другие языки программирования и технологии
Слышал, что программисты и даже с опытом не любят рекурсию. Почему так?
У рекурсии есть некоторые опасности, например бесконечная (или практически безконечто долгая) рекурсия и переполнение стека. Поэтому ее не то чтобы не любят, но опасаются.
Пример из жизни.
Была как-то в "Икее" любопытная скидка: купи 2 пуфика и получи третий бесплатно. Ну или не пуфика. Но пусть будут пуфики.
И пришел Большой Икеевский Босс. И увидел он, что скидка - это хорошо. И сказал: "Всем работникам - по пуфику!". Достал свою платиновую кредитку, подошел к кассе и заказал 60 пуфиков. Т. е. за 40 надо заплатить, 20 - в подарок.
А потом касса начала вычислять скидку:
1 пуфик + 2 пуфик - 3 бесплатно.
1 + 3 - 2
1 + 4 - 2. Ну или 3.
И так далее.
Всего 40! вариантов, если не ошибаюсь.
И зависла касса навечно.
И сказал Большой Босс, что это нехорошо.
И долго еще соседний отдел нашей конторы воевал с оптимизацией пуфиков.
Такие дела.
Пример из жизни.
Была как-то в "Икее" любопытная скидка: купи 2 пуфика и получи третий бесплатно. Ну или не пуфика. Но пусть будут пуфики.
И пришел Большой Икеевский Босс. И увидел он, что скидка - это хорошо. И сказал: "Всем работникам - по пуфику!". Достал свою платиновую кредитку, подошел к кассе и заказал 60 пуфиков. Т. е. за 40 надо заплатить, 20 - в подарок.
А потом касса начала вычислять скидку:
1 пуфик + 2 пуфик - 3 бесплатно.
1 + 3 - 2
1 + 4 - 2. Ну или 3.
И так далее.
Всего 40! вариантов, если не ошибаюсь.
И зависла касса навечно.
И сказал Большой Босс, что это нехорошо.
И долго еще соседний отдел нашей конторы воевал с оптимизацией пуфиков.
Такие дела.
Потому что переполнение стека может наступить.
Pasha ____
Это где сейчас переполнение стека может наступить? Вроде везде уже оптимизируют.
Помимо выше сказанного, рекурсия сдерживает декодеры процессора, т. к нарушается последовательность выборки команд из кэша, + переполняется BTB(Branch Target Buffer), которая ведет к более частым промахам в кэше.
Ну не знаю почему ты такое слышишь, это к доктору. Вроде наоборот сейчас ФП популярно.
Похожие вопросы
- Что важнее для программиста при трудоустройстве, помимо опыта работы?
- С чего начинают веб-программисты создание сайта? С вёрстки или дизайна? И почему?
- Работа программиста действительно хорошо оплачиваемая или же нет? Вопрос почему?
- Стоит ли использовать рекурсию в целом? (+)
- Рекурсия, возникли проблемы с изучением рекурсии, не могли бы подсказать книги или видео про обьяснение рекурсии
- Ошибка в программе delphi. Рекурсия
- Вопрос тем, кто хорошо знаком с рекурсией. Язык Си (но это второстепенно)...
- Подскажите практическую задачку на углубленное понимание что такое рекурсия?
- Почему не любят PHP и веб-программистов?
- Приведите пример конкретных (с учетом специализации) карьерных лифтов программиста, старт без опыта. "умники" мимо