In computer programming, a recursion (noun, pronounced ree-KUHR-zhion) is programming that is recursive (adjective), and recursive has two related meanings:
1) A recursive procedure or routine is one that has the ability to call itself. This usually means that it has the capability to save the condition it was in or the particular process it is serving when it calls itself (otherwise, any variable values that have been developed in executing the code are overlaid by the next iteration or go-through). Typically, this is done by saving values in registers or data area stacks before calling itself or at the beginning of the sequence where it has just been reentered.
2) A recursive expression is a function, algorithm, or sequence of instructions (typically, an IF, THEN, ELSE sequence) that loops back to the beginning of itself until it detects that some condition has been satisfied. Here is a simple example (using a made-up computer source language):
CODELINE1 N=0; CODELINE2 IF N=<10 THEN DO WRITE LETTER; CODELINE3 ELSE GOTO CODELINE6; CODELINE4 N=N+1; CODELINE5 GOTO CODELINE2; CODELINE6 ...some other instruction
Here, the instructions labeled CODELINE2 through CODELINE5 are recursive until the condition of N having the value of 10. "IF N=<10" means "If N has a value less than 10." "N=N+1" means "Add 1 to the current value of N."
In mathematics, recursion has similar but more complicated meanings than it does when used in programming.