Відповіді:
У 1920-1930-х роках люди намагалися з'ясувати, що означає "ефективно обчислити функцію" (пам’ятайте, обчислювальних машин загального призначення навколо не було, а обчислення - це щось, що робиться людьми).
Було запропоновано кілька визначень "обчислювальних", з яких три найбільш відомі:
Пізніше було популяризоване Робертом Соаре намагання змінити "рекурсивну" на "обчислювальну". Таким чином, ми сьогодні говоримо про обчислювані функції та про безліч наборів. Але багато старих підручників і багато людей все ще віддають перевагу «рекурсивній» термінології.
Стільки за історію. Ми також можемо запитати, чи важлива для обчислення рекурсія з чисто математичної точки зору. Відповідь - дуже певне «так!». Рекурсія лежить в основі мов програмування загального призначення (навіть while
петлі є лише формою рекурсії, оскільки while p do c
це така ж, як if p then (c; while p do c)
), і багато фундаментальних структур даних, таких як списки та дерева, є рекурсивними. Рекурсія просто неминуча в інформатиці та конкретно в теорії обчислюваності.
Теорія обчислюваності - це вивчення обчислюваних функцій :-).
Такі функції зазвичай (у цій спільноті) визначаються як функції, які можна виразити за допомогою машини Тьюрінга.
Як виявляється, якщо таким чином визначити обчислювані функції (програми), вони еквівалентні набору функцій, які можна отримати, використовуючи описані тут правила . Їх називають рекурсивними функціями, оскільки одне з правил отримання таких функцій є рекурсивним визначенням (Див. 5 правило щодо вікіпедії).
Тож причина, чому теорія рекурсії має велике значення, рівнозначна питанню, чому важливі обчислювальні функції. І відповідь на останнє має бути цілком очевидною :)