Information about Recursion
This article is about the concept of recursion. For the novel, see Recursion (novel). For computer applications, see Recursion (computer science). For other uses, see recursive.
A visual form of recursion known as the Droste effect.
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 then defining rules to break down complex cases into simpler cases.For example, the following is a recursive definition of person's ancestors:
- One's parents are one's ancestors (base case);
- The parents of any ancestor are also ancestors of the person under consideration (recursion step).
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 Pāṇini 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 little girl 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, "Jack-built", that applies to the house in the same way "Wicked" applies to the Witch. "He lived in the Jack-built house" is unusual, perhaps poetic sounding, but it is not clearly wrong.
The idea that recursion is necessary for the unlimited extension of a 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 plain English
Recursion is the process a procedure goes through when one of the steps of the procedure involves rerunning the entire same 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.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 second-shortest 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".
Other examples are recursive acronyms, such as GNU, PHP or TTP (Dilbert; "The TTP Project").
Recursion in mathematics
A Sierpinski triangle—a confined recursion of triangles to form a geometric lattice.
Recursively defined sets
- Example: the natural numbers
- 1 is in

- if n is in
, then n + 1 is in 
- 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.
(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 non-recursively 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 non-recursive definition.
A classic example of recursion is the definition of the factorial function, given here in C code:
unsigned int factorial(unsigned int n) { if (n <= 1) return 1; return n * factorial(n-1); }
The function calls itself recursively on a smaller version of the input (n - 1) and multiplies the result of the recursive call by n, until reaching the base case, analogously to the mathematical definition of factorial.
Use of recursion in an algorithm has both advantages and disadvantages. The main advantage is usually simplicity. The main disadvantage is often that the algorithm may require large amounts of memory if the depth of the recursion is very large. It has been claimed that recursive algorithms are easier to understand because they do not contain the clutter (e.g., extra variables) associated with looping algorithms. There is no experimental evidence for this claim.
It is often possible to replace a recursive call with a simple loop, as the following example of factorial shows:
unsigned int factorial(unsigned int n) { unsigned int result = 1; if (n <= 1) return 1; while (n--) result *= n; return result; }
An example of recursive algorithm is procedure that processes (does something with) all the nodes of a tree data structure:
void ProcessTree(node x) { unsigned int i = 0; while (i < x.count) { ProcessTree(x.children[i]); i++; } ProcessNode(x); // now perform the operation with the node itself }
To process the whole tree, procedure is called with root node representing the tree as an initial parameter. The procedure calls itself recursively on all child nodes of the given node (i.e. sub-trees of the given tree), until reaching the base case that is node with no child nodes (i.e. tree having no branches usually called "leaf").
Tree data structure itself can be defined recursively (and so predestinated for recursive processing) like this:
typedef struct { unsigned int count; node* children; } node
The recursion theorem
In set theory, this is a theorem guaranteeing that recursively defined functions exist. Given a set
, an element
of
and a function
, the theorem states that there is a unique function
(where
denotes the set of natural numbers) such that
.
Proof of uniqueness
Take two functions
and
of domain
and codomain
such that:
where
is an element of
. We want to prove that
. Two functions are equal if they:
- i. have equal domains/codomains;
- ii. have the same graphic.
- i. :ii. Mathematical induction: for all
in
,
? (We shall call this condition, say,
:
- :1.
if and only if
if and only if
.
- :2.Let
be an element of
. Assuming that
holds, we want to show that
holds as well, which is easy because:
.
Proof of existence
- See Hungerford, "Algebra", first chapter on set theory.
Some common recurrence relations are:
|
|
See also
References
- Johnsonbaugh, Richard (2004). Discrete Mathematics. Prentice Hall. ISBN 0-13-117686-2.
- Hofstadter, Douglas (1999). Gödel, Escher, Bach: an Eternal Golden Braid. Basic Books. ISBN 0-465-02656-7.
- Shoenfield, Joseph R. (2000). Recursion Theory. A K Peters Ltd. ISBN 1-56881-149-7.
- Causey, Robert L. (2001). Logic, Sets, and Recursion. Jones & Bartlett. ISBN 0-7637-1695-2.
- Cori, Rene; Lascar, Daniel; Pelletier, Donald H. (2001). Recursion Theory, Godel's Theorems, Set Theory, Model Theory. Oxford University Press. ISBN 0-19-850050-5.
- Barwise, Jon; Moss, Lawrence S. (1996). Vicious Circles. Stanford Univ Center for the Study of Language and Information. ISBN 0-19-850050-5. - offers a treatment of corecursion.
- Rosen, Kenneth H. (2002). Discrete Mathematics and Its Applications. McGraw-Hill College. ISBN 0-07-293033-0.
- Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2001). Introduction to Algorithms. Mit Pr. ISBN 0-262-03293-7.
- Kernighan, B.; Ritchie, D. (1988). The C programming Language. Prentice Hall. ISBN 0-13-110362-8.
- Stokey, Nancy,; Robert Lucas; Edward Prescott (1989). Recursive Methods in Economic Dynamics. Harvard University Press. ISBN 0674750969.
External links
- Recursion - tutorial by Alan Gauld
- Freaking Vortex - comic by Nicholas Gurewitch
- Tabletop Roleplaying - comic by Randall Munroe
Recursion (2004) is Tony Ballantyne's first novel. It is in the science fiction genre and follows three separate characters and their stories in a futuristic dystopia.
..... Click the link for more information.
..... Click the link for more information.
Recursion in computer programming defines a function in terms of itself. One example application of recursion is in recursive descent parsers for programming languages. The great advantage of recursion is that an infinite set of possible sentences, designs, or other data can be
..... Click the link for more information.
..... Click the link for more information.
Recursive may refer to:
..... Click the link for more information.
- Recursion
- Recursively enumerable language
- Recursively enumerable set
- Recursive filter
- Recursive function
- Recursive language
- Recursive acronym
- Recursive set
- Primitive recursive function
..... Click the link for more information.
Mathematics (colloquially, maths or math) is the body of knowledge centered on such concepts as quantity, structure, space, and change, and also the academic discipline that studies them. Benjamin Peirce called it "the science that draws necessary conclusions".
..... Click the link for more information.
..... Click the link for more information.
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
..... Click the link for more information.
..... Click the link for more information.
Function may refer to:
..... Click the link for more information.
- Function (biology), explaining why a feature was created
- Function (mathematics), an abstract entity that associates an input to a corresponding output according to some rule
- Function (engineering), related to the utility/goal of a property
..... Click the link for more information.
Mathematics (colloquially, maths or math) is the body of knowledge centered on such concepts as quantity, structure, space, and change, and also the academic discipline that studies them. Benjamin Peirce called it "the science that draws necessary conclusions".
..... Click the link for more information.
..... Click the link for more information.
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
..... Click the link for more information.
..... Click the link for more information.
parent is a father or mother; one who sires or gives birth to and/or nurtures and raises an offspring. The different role of parents varies throughout the tree of life, and is especially complex in human culture.
..... Click the link for more information.
..... Click the link for more information.
An ancestor is a parent or (recursively) the parent of an ancestor (i.e., a grandparent, great-grandparent, and so on).
Two individuals have a genetic relationship if one is the ancestor of the other, or if they share a common ancestor.
..... Click the link for more information.
Two individuals have a genetic relationship if one is the ancestor of the other, or if they share a common ancestor.
..... Click the link for more information.
In mathematics, a natural number can mean either an element of the set (i.e the positive integers or the counting numbers) or an element of the set (i.e. the non-negative integers).
..... Click the link for more information.
..... Click the link for more information.
Termination may refer to:
..... Click the link for more information.
- Termination of employment.
- For Native Americans in the United States, Termination was a policy under which the Federal government extinguished the legal recognition of scores of Indian tribes and bands, ending Federal supervision and
..... Click the link for more information.
Andrew Plotkin(born May 15, 1970), also known as Zarf, is an award-winning interactive fiction author and an important figure in the modern interactive fiction community.
..... Click the link for more information.
..... Click the link for more information.
Douglas R. Hofstadter
Born: January 15 1945
New York, New York
Occupation: Professor of cognitive science
Nationality: United States
..... Click the link for more information.
Born: January 15 1945
New York, New York
Occupation: Professor of cognitive science
Nationality: United States
..... Click the link for more information.
function expresses dependence between two quantities, one of which is given (the independent variable, argument of the function, or its "input") and the other produced (the dependent variable, value of the function, or "output").
..... Click the link for more information.
..... Click the link for more information.
SET may stand for:
..... Click the link for more information.
- Sanlih Entertainment Television, a television channel in Taiwan
- Secure electronic transaction, a protocol used for credit card processing,
..... Click the link for more information.
fractal.]]
A fractal is generally "a rough or fragmented geometric shape that can be subdivided in parts, each of which is (at least approximately) a reduced-size copy of the whole,"[1] a property called self-similarity.
..... Click the link for more information.
A fractal is generally "a rough or fragmented geometric shape that can be subdivided in parts, each of which is (at least approximately) a reduced-size copy of the whole,"[1] a property called self-similarity.
..... Click the link for more information.
For the journal, see .
Linguistics is the scientific study of language, which can be theoretical or applied. Someone who engages in this study is called a linguist...... Click the link for more information.
Indian subcontinent is a large section of the Asian continent consisting of countries lying substantially on the Indian tectonic plate. These include countries on the continental crust— India, Pakistan, Bangladesh and parts of Afghanistan, Nepal and Bhutan, island countries
..... Click the link for more information.
..... Click the link for more information.
The 5th century BC started the first day of 500 BC and ended the last day of 401 BC.
This century sees the beginning of a period of philosophical brilliance among advanced civilizations, particularly the Greeks which would continue all the way through the
..... Click the link for more information.
Overview
This century sees the beginning of a period of philosophical brilliance among advanced civilizations, particularly the Greeks which would continue all the way through the
..... Click the link for more information.
Grammar is the study of the rules governing the use of a given natural language, and as such a field of linguistics. Traditionally, grammar included morphology and syntax, in modern linguistics commonly expanded by the subfields of phonetics, phonology, orthography, semantics, and
..... Click the link for more information.
..... Click the link for more information.
Sanskrit}}} | style="padding-left: 0.5em;" | Writing system: | colspan="2" style="padding-left: 0.5em;" | Devanāgarī and several other Brāhmī-based scripts ! colspan="3" style="text-align: center; color: black; background-color: lawngreen;"|Official
..... Click the link for more information.
..... Click the link for more information.
Avram Noam Chomsky (Hebrew: אברם נועם חומסקי Yiddish: אברם נועם כאמסקי) (born December 7, 1928) is an American
..... Click the link for more information.
..... Click the link for more information.
English}}}
Writing system: Latin (English variant)
Official status
Official language of: 53 countries
Regulated by: no official regulation
Language codes
ISO 639-1: en
ISO 639-2: eng
ISO 639-3: eng
..... Click the link for more information.
Writing system: Latin (English variant)
Official status
Official language of: 53 countries
Regulated by: no official regulation
Language codes
ISO 639-1: en
ISO 639-2: eng
ISO 639-3: eng
..... Click the link for more information.
For the journal, see .
Linguistics is the scientific study of language, which can be theoretical or applied. Someone who engages in this study is called a linguist...... Click the link for more information.
Daniel Leonard Everett (born 1951 in Holtville, California[1]) is a linguistics professor who currently serves as Chairperson of the Department of Languages, Literatures and Cultures at Illinois State University in Normal, Illinois.
..... Click the link for more information.
..... Click the link for more information.
Pirahã (also Pirahá, Pirahán) is a language spoken by the Pirahã — an indigenous people of Amazonas, Brazil, who live along the Maici river, a tributary of the Amazon.
..... Click the link for more information.
..... Click the link for more information.
geek is a slang term, noting individuals as "a peculiar or otherwise dislikable person, especially one who is perceived to be overly intellectual".[1] Formerly, the term referred to a carnival performer often billed as a wild man whose act usually includes biting the
..... Click the link for more information.
..... Click the link for more information.
The Jargon File is a glossary of hacker slang. The original Jargon File was a collection of hacker slang from technical cultures including the MIT AI Lab, the Stanford AI Lab (SAIL), and others of the old ARPANET AI/LISP/PDP-10 communities including Bolt, Beranek and Newman (BBN),
..... Click the link for more information.
..... Click the link for more information.
A circular definition is one that assumes a prior understanding of the term being defined. By using the term(s) being defined as a part of the definition, a circular definition provides no new or useful information; either the audience already knows the meaning of the term(s), or
..... Click the link for more information.
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus






,