A function that calls itself is said to be recursive. Recursive logic can often be implemented as a loop, too. Recursion must be controlled with a parameter, so that the function knows when to stop recursing and deepening the call stack. Infinite recursion eventually causes a run-time error '28': "Out of stack space".
Recursion allows for repeated, self-referencing calls of a procedure.