Ответы:
В 1920-х и 1930-х годах люди пытались выяснить, что значит «эффективно вычислять функцию» (помните, что вокруг не было вычислительных машин общего назначения, а вычисления выполнялись людьми).
Было предложено несколько определений «вычислимых», три из которых наиболее известны:
Оказалось, что они определяют один и тот же класс теоретико-числовых функций. Потому что рекурсивные функции старше машин Тьюринга, а то и старше
Позднее была предпринята попытка популяризации Роберта Соаре изменить рекурсивную форму на вычислимую. Таким образом, в настоящее время мы говорим о вычислимых функциях и вычислимо перечислимых множествах. Но многие старые учебники и многие люди все еще предпочитают «рекурсивную» терминологию.
Так много для истории. Мы также можем спросить, важна ли рекурсия для вычислений с чисто математической точки зрения. Ответ очень определенное «да!». Рекурсия лежит в основе языков программирования общего назначения (четные while
циклы - это просто форма рекурсии, потому что while p do c
она такая же if p then (c; while p do c)
), и многие фундаментальные структуры данных, такие как списки и деревья, являются рекурсивными. Рекурсия просто неизбежна в компьютерных науках, особенно в теории вычислимости.
Теория вычислимости - это изучение вычислимых функций :-).
Такие функции обычно (в этом сообществе) определяются как функции, которые могут быть выражены с помощью машины Тьюринга.
Как выясняется, если вы таким образом определяете вычислимые функции (программы), они эквивалентны набору функций, которые можно получить, используя правила, описанные здесь . Они называются рекурсивными функциями, поскольку одним из правил получения таких функций является рекурсивное определение (см. 5-е правило в Википедии).
Таким образом, причина, почему теория рекурсии имеет большое значение, эквивалентна вопросу о том, почему вычислимые функции важны. И ответ на последний должен быть вполне очевидным :)