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

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