Любую рекурсию можно заменить циклом и стеком. Потому что рекурсия и есть по сути цикл со стеком. Другой вопрос - зачем? Рекурсия - мощное выразительное свойство языка и если представлять ее возможности и ограничения, чего бы ей не пользоваться.
Часто рекурсивный вызов куда короче и читабельнее портянки циклов. Да циклом сделать иногда эффективнее чем рекурсией, в особо запущенных случаях в разы эффективнее. Но тут классическая дилемма между сложностью поддержки и быстродействием. Обычно сложность поддержки - куда более узкое место.
Последний раз редактировалось Makarov, 17.06.2014 в 17:22.
|