LINUX.ORG.RU

История изменений

Исправление k0valenk0_igor, (текущая версия) :

Лично я называю «рекурсией» повторное выполнение кода. ИМХО цикл это тоже рекурсия

На самом деле, это совсем не так. Главное отличие рекурсии от цикличного исполнения - в контексте. У цикла контекст один и тот же, у рекурсивно вызванного кода - разный. Вот ссылка на вики

Обратите внимание на следующие слова

Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно.

Стек в данном случае и есть контекст.

И в сабже как раз контекст разный. И однако, - qulinxao правильно подметил, - тут нет вложенности возвратов. Так что тут хотя и рекурсия, имхо, но это не декларативная рекурсия, а рекурсия реализации.

Исправление k0valenk0_igor, :

Лично я называю «рекурсией» повторное выполнение кода. ИМХО цикл это тоже рекурсия

На самом деле, это совсем не так. Главное отличие рекурсии от цикличного исполнения в контексте. У цикла контекст один и тот же, у рекурсивно вызванного кода - разный. Вот ссылка на вики

Обратите внимание на следующие слова

Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно.

Стек в данном случае и есть контекст.

И в сабже как раз контекст разный. И однако, - qulinxao правильно подметил, - тут нет вложенности возвратов. Так что тут хотя и рекурсия, имхо, но это не декларативная рекурсия, а рекурсия реализации.

Исходная версия k0valenk0_igor, :

Лично я называю «рекурсией» повторное выполнение кода. ИМХО цикл это тоже рекурсия

На самом деле, это совсем не так. Главное отличие рекурсии от цикличного исполнения в контексте. У цикла контекст один и тот же, у рекурсивно вызванного кода - разный. Вот ссылка на вики

Обратите внимание на следующие слова

Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно.

Стек в данном случае и есть контекст.

И в сабже как раз контекст разный. И однако, - qulinxao правильно подметил, - тут нет вложенности возвратов. Так что тут хотя и рекурсия, имхо, но это рекурсия реализации, а не рекурсия определения/описания. То есть это не декларативная рекурсия.