Слышал, что программисты и даже с опытом не любят рекурсию. Почему так? - Компьютерные вопросы

Вопрос Слышал, что программисты и даже с опытом не любят рекурсию. Почему так?

Регистрация
29 Ноя 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Слышал, что программисты и даже с опытом не любят рекурсию. Почему так?
 
Регистрация
27 Авг 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
У рекурсии есть некоторые опасности, например бесконечная (или практически безконечто долгая) рекурсия и переполнение стека. Поэтому ее не то чтобы не любят, но опасаются. Пример из жизни. Была как-то в "Икее" любопытная скидка: купи 2 пуфика и получи третий бесплатно. Ну или не пуфика. Но пусть будут пуфики. И пришел Большой Икеевский Босс. И увидел он, что скидка - это хорошо. И сказал: "Всем работникам - по пуфику!". Достал свою платиновую кредитку, подошел к кассе и заказал 60 пуфиков. Т. е. за 40 надо заплатить, 20 - в подарок. А потом касса начала вычислять скидку: 1 пуфик + 2 пуфик - 3 бесплатно. 1 + 3 - 2 1 + 4 - 2. Ну или 3. И так далее. Всего 40! вариантов, если не ошибаюсь. И зависла касса навечно. И сказал Большой Босс, что это нехорошо. И долго еще соседний отдел нашей конторы воевал с оптимизацией пуфиков. Такие дела.
 
Регистрация
9 Ноя 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Глупость. Существует немало алгоритмов, которые в рекурсивной форме записывать намного проще и удобнее, чем в виде циклов. А в функциональных языках ты вообще без рекурсии прожить не сможешь. Но надо понимать, что рекурсия - это дополнительные накладные расходы, а далеко не все компиляторы умеют автоматически преобразовывать хвостовую рекурсию в цикл. Так что осознанное решение об использовании рекурсии в императивных языках - это всегда компромисс между удобством и затратами ресурсов.
 
Сверху Снизу