Рекурсія в програмуванні
Досить давно, в програмуванні з'явився термін "рекурсія", що означає виклик функції (або ж процедури) безпосередньо з самої себе. Є проста (безпосередня) рекурсія або рекурсія, яка працює через інші процедури і функції (такий вид називається непрямою, складної рекурсією).
У повсякденному і науковому житті ми часто стикаємося з рекурсією. наприклад:- трикутник Серпінського;
- ефект Дросте;
- обчислення факторіала.
Найпростіший спосіб поспостерігати за рекурсією - це навести веб-камеру на монітор вашого персонального комп'ютера, звичайно ж її включивши.
До питання про те, чи варто застосовувати рекурсивні функції чи ні, багато програмістів відносяться по-різному. Ця тема залишається до сих пір відкритою для обговорення: одні вважають, що рекурсивна форма виглядає наочніше і структурно простіше, зокрема, якщо сам по собі програмований алгоритм має властивість рекурсії. Простіше кажучи, рекурсию можна уявити, якщо ви поставите два дзеркала один напроти одного і подивіться в них. Наведемо приклад рекурсивної процедури:

Крім того, в функціональних мовах в чистому вигляді (до них відносяться Пролог, Haskell) неможливо поставити цикл синтаксично, тому рекурсія є єдиним доступним засобом завдання повторюваних обчислень. Але іноді, слід уникати рекурсивних конструкцій в програмних модулях, тому що вони можуть стати причиною надмірно глибокої рекурсії. У мовах С ++ / С # функції мають можливість виклику самих себе.
Дамо визначення рекурсивної функції - це функція, в тілі якої оператор викликає функцію, яку містить цей оператор.
Найпоширенішим прикладом рекурсії є відома функція обчислення факторіала factоr (). Факторіал деякого числа цей твір чисел від 1 до цього числа.