Dictionary Definition
recursion n : (mathematics) an expression such
that each term is generated by repeating a particular mathematical
operation
User Contributed Dictionary
English
Etymology
recursio (recurrere), running again, from prefix re, again, + cursio, running, from cursus, perfect passive participle of currire, run, + noun of action suffix ioPronunciation
 Rhymes with: ɜː(r)ʒən
Noun
 The act of recurring.
 The act of defining an object (usually a function) in terms of
that object itself.
 n! = n × (n − 1)! (for n > 0) or 1 (for n = 0) defines the factorial function using recursion.
 The calling of a function from within that same function.
 This function uses recursion to compute factorials.
Derived terms
Related terms
Translations
Extensive Definition
Recursion, in mathematics and computer
science, is a method of defining functions
in which the function being defined is applied within its own
definition. The term is also used more generally to describe a
process of repeating objects in a selfsimilar way. For instance,
when the surfaces of two mirrors are almost parallel with each
other the nested images that occur are a form of recursion.
Formal definitions of recursion
In mathematics and computer
science, recursion specifies (or constructs) a class of objects
or methods (or an object from a certain class) by defining a few
very simple base cases or methods (often just one), and defining
rules to break down complex cases into simpler cases.
For example, the following is a recursive
definition of person's ancestors:
It is convenient to think that a recursive
definition defines objects in terms of "previously defined" objects
of the class to define.
Definitions such as these are often found in
mathematics. For example, the formal definition of natural
numbers in set theory is: 1 is a natural number, and each
natural number has a successor, which is also a natural
number.
Here is another, perhaps simpler way to
understand recursive processes:
 Are we done yet? If so, return the results. Without such a termination condition a recursion would go on forever.
 If not, simplify the problem, solve the simpler problem(s), and assemble the results into a solution for the original problem. Then return that solution.
A more humorous illustration goes: "In order to
understand recursion, one must first understand recursion." Or
perhaps more accurate is the following, from Andrew
Plotkin: "If you already know what recursion is, just remember
the answer. Otherwise, find someone who is standing closer to
Douglas
Hofstadter than you are; then ask him or her what recursion
is."
Examples of mathematical objects often defined
recursively are functions,
sets, and especially
fractals.
Recursion in language
The use of recursion in linguistics, and the use of
recursion in general, dates back to the ancient
Indian linguist in the 5th century
BC, who made use of recursion in his grammar rules of Sanskrit.
Linguist Noam Chomsky
theorizes that unlimited extension of a language such as English
is possible only by the recursive device of embedding sentences in
sentences. Thus, a chatty person may say, "Dorothy, who met the
wicked Witch of the West in Munchkin Land where her wicked Witch
sister was killed, liquidated her with a pail of water." Clearly,
two simple sentences — "Dorothy met the Wicked Witch of
the West in Munchkin Land" and "Her sister was killed in Munchkin
Land" — can be embedded in a third sentence, "Dorothy
liquidated her with a pail of water," to obtain a very verbose
sentence.
However, if "Dorothy met the Wicked Witch" can be
analyzed as a simple sentence, then the recursive sentence "He
lived in the house Jack built" could be analyzed that way too, if
"Jack built" is analyzed as an adjective, "Jackbuilt", that
applies to the house in the same way "Wicked" applies to the Witch.
"He lived in the Jackbuilt house" is unusual, perhaps poetic
sounding, but it is not clearly wrong.
The idea that recursion is the essential property
that enables language is challenged by linguist
Daniel
Everett in his work Cultural Constraints on Grammar and
Cognition in Pirahã: Another Look at the Design Features of Human
Language in which he hypothesizes that cultural factors made
recursion unnecessary in the development of the Pirahã
language. This concept challenges Chomsky's idea and accepted
linguistic doctrine that recursion is the only trait which
differentiates human and animal communication and is currently
under intense debate.
Recursion in linguistics enables 'discrete
infinity' by embedding phrases within phrases of the same type in a
hierarchical structure. Without recursion, language does not have
'discrete infinity' and cannot embed sentences into infinity (with
a 'Russian doll' effect). Everett contests that language must have
discrete infinity, and that the Piraha language  which he claims
lacks recursion  is in fact finite. He likens it to the finite
game of Chess, which has a finite number of moves but is
nevertheless very productive, with novel moves being discovered
throughout history.
Recursion in plain English
Recursion is the process a procedure goes through when one of the steps of the procedure involves rerunning the procedure. A procedure that goes through recursion is said to be recursive. Something is also said to be recursive when it is the result of a recursive procedure.E.g., shampoo directions:
1. Lather 2. Rinse 3. Repeat
To understand recursion, one must recognize the
distinction between a procedure and the running of a procedure. A
procedure is a set of steps that are to be taken based on a set of
rules. The running of a procedure involves actually following the
rules and performing the steps. An analogy might be that a
procedure is like a menu in that it is the possible steps, while
running a procedure is actually choosing the courses for the meal
from the menu.
A procedure is recursive if one of the steps that
makes up the procedure calls for a new running of the procedure.
Therefore a recursive four course meal would be a meal in which one
of the choices of appetizer, salad, entrée, or dessert was an
entire meal unto itself. So a recursive meal might be potato skins,
baby greens salad, chicken Parmesan, and for dessert, a four course
meal, consisting of crab cakes, Caesar salad, for an entrée, a four
course meal, and chocolate cake for dessert, so on until each of
the meals within the meals is completed.
A recursive procedure must complete every one of
its steps. Even if a new running is called in one of its steps,
each running must run through the remaining steps. What this means
is that even if the salad is an entire four course meal unto
itself, you still have to eat your entrée and dessert.
Recursive humor
A common geeky joke (for example recursion
in the Jargon File)
is the following "definition" of recursion.
 Recursion

 See "Recursion".
Another example occurs in Kernighan and Ritchie's
"The C Programming Language." The following index entry is found on
page 269:

 recursion 86, 139, 141, 182, 202, 269
This is a parody on references in dictionaries,
which in some careless cases may lead to circular
definitions. Jokes often have an element of wisdom, and also an
element of misunderstanding. This one is also the secondshortest
possible example of an erroneous recursive definition of an object,
the error being the absence of the termination condition (or lack
of the initial state, if looked at from an opposite point of view).
Newcomers to recursion are often bewildered by its apparent
circularity, until they learn to appreciate that a termination
condition is key. A variation is:
 Recursion

 If you still don't get it, See: "Recursion".
which actually does terminate, as soon as the
reader "gets it".
Recursion in mathematics
Recursively defined sets
 Example: the natural numbers
 1 is in \mathbb
 if n is in \mathbb, then n + 1 is in \mathbb
 The set of natural numbers is the smallest set of real numbers satisfying the previous two properties.
 Example: The set of true reachable propositions
 if a proposition is an axiom, it is a true reachable proposition.
 if a proposition can be obtained from true reachable propositions by means of inference rules, it is a true reachable proposition.
 The set of true reachable propositions is the smallest set of reachable propositions satisfying these conditions.
This set is called 'true reachable propositions'
because: in nonconstructive approaches to the foundations of
mathematics, the set of true propositions is larger than the set
recursively constructed from the axioms and rules of inference. See
also
Gödel's incompleteness theorems.
(Note that determining whether a certain object
is in a recursively defined set is not an algorithmic task.)
Functional recursion
A function may be partly defined in terms of itself. A familiar example is the Fibonacci number sequence: F(n) = F(n − 1) + F(n − 2). For such a definition to be useful, it must lead to values which are nonrecursively defined, in this case F(0) = 0 and F(1) = 1.A famous recursive function is the Ackermann
function which, unlike the Fibonacci sequence, cannot be
expressed without recursion.
Recursive proofs
The standard way to define new systems of mathematics or logic is to define objects (such as "true" and "false", or "all natural numbers"), then define operations on these. These are the base cases. After this, all valid computations in the system are defined with rules for assembling these. In this way, if the base cases and rules are all proven to be calculable, then any formula in the mathematical system will also be calculable.This sounds unexciting, but this type of proof is
the normal way to prove that a calculation is impossible. This can
often save a lot of time. For example, this type of proof was used
to prove that the area of a circle is not a simple ratio of its
diameter, and that no angle can
be trisected with compass and straightedge  both puzzles that
fascinated the ancients.
Recursive optimization
Dynamic programming is an approach to optimization which restates a multiperiod or multistep optimization problem in recursive form. The key result in dynamic programming is the Bellman equation, which writes the value of the optimization problem at an earlier time (or earlier step) in terms of its value at a later time (or later step).Recursion in computer science
A common method of simplification is to divide a
problem into subproblems of the same type. As a computer
programming technique, this is called
divide and conquer and is key to the design of many important
algorithms, as well as being a fundamental part of dynamic
programming.
Recursion in computer programming is exemplified
when a function is defined in terms of itself. One example
application of recursion is in parsers for programming
languages. The great advantage of recursion is that an infinite set
of possible sentences, designs or other data can be defined, parsed
or produced by a finite computer program.
Recurrence
relations are equations to define one or more sequences
recursively. Some specific kinds of recurrence relation can be
"solved" to obtain a nonrecursive definition.
A classic example of recursion is the definition
of the factorial
function, given here in C code:
unsigned int factorial(unsigned int
n)