Здравствуйте, Vamp, Вы писали:
V>Любой рекурсивный вызов можно преобразовать в цикл.
Это очень сильное утверждение.
V>Другое дело, что такого рода цикл не будет, вероятно, быстрее рекурсии — все равно придется каким-то образом организовывать стек и взаимодействовать с ним на каждой итерации.
Зачем стек? Если используется стек, то нельзя говорить о том, что рекурсия сведена к циклу. Факториал же, записанный в виде цикла, будет намного быстрее рекурсивной функции.
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, WolfHound, Вы писали:
WH>>В студии это даже можно регулировать WH>>Врубаем встраивание рекурсивных функций WH>>#pragma inline_recursion(on) WH>>Указываем глубину встраивания WH>>#pragma inline_depth(8)
Ш>Ага, и вот что получается. На фиг, на фиг такое чудо.
V>>Любой рекурсивный вызов можно преобразовать в цикл. Ш>Это очень сильное утверждение.
Зато это правда. Я имел в виду преобразование, не используеще рекурсий, предоставляемых средствами языка — получившийся цикл, конечно, тоже можно будет назвать рекурсией в определенном идеологическом смысле.
V>>Другое дело, что такого рода цикл не будет, вероятно, быстрее рекурсии — все равно придется каким-то образом организовывать стек и взаимодействовать с ним на каждой итерации. Ш>Зачем стек? Если используется стек, то нельзя говорить о том, что рекурсия сведена к циклу. Факториал же, записанный в виде цикла, будет намного быстрее рекурсивной функции.
Я имел в виду "механическое" преобразование, не меняющее логику программы.
Да здравствует мыло душистое и веревка пушистая.
Re[8]: Как рекурсивная функция может быть inline ?
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Azir, Вы писали:
A>>Здравствуйте, Кодт, Вы писали:
К>>>(не помню — нужна в кольце коммутативность или нет; здесь — не нужна). A>>Идеалы бывают левыми и правыми: кольцо коммутативно по сложению и не обязательно по умножению.
К>Да, спасибо. Я уже в справочник слазил. К>В общем, здесь ещё недокольцо: уже две операции, ассоциативность, односторонняя дистрибутивность. Обратимость, кстати, тоже не нужна.
К> К>Интересно, для булевых функций какие ещё варианты бывают?
Ребята! ну не надо так.... а то начинаешь чувствовать себя неандертальцем.......