Everything about Recursion (computer science)
Use of functions that call themselves
In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem. Recursion solves such recursive problems by using functions that call themselves from within their own code. The approach can be applied to many types of problems, and recursion is one of the central ideas of computer science.The power of recursion evidently lies in the possibility of defining an infinite set of objects by a finite statement. In the same manner, an infinite number of computations can be described by a finite recursive program, even if this program contains no explicit repetitions. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Recursion (computer science)A 5-minute orientation
- Pick up a classic book: Computability and logicThe most-reprinted book on the subject
- Read the landmark paper: E-learning for introductory Computer Science concept on recursion applying two types of feedback methods in the learning assessmentCited 3 times
- Go sideways: Tail callA closely related topic
- Go sideways: Tree traversalA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
- History
- Structure of a recursive function
- Recursive data types
- Types of recursion
- Implementation issues
- Recursion versus iteration
- Tail-recursive functions
- Order of execution
- Recursive procedures
- Recursive data structures (structural recursion)
- Time-efficiency of recursive algorithms
- Recursion in Logic Programming
🏆 Landmark papers (most cited)
📚 Books worth reading
Computability and logicGeorge Boolos, Richard C. Jeffrey · 1974
Algorithmen und DatenstrukturenNiklaus Wirth · 1975
Computable AnalysisKlaus Weihrauch · 2000
Bounded queries in recursion theoryWilliam I. Gasarch, William Gasarch · 1998
Exact Exponential AlgorithmsFedor V. Fomin · 2010
Introduction to algorithmsUdi Manber · 1989
ComputabilityKlaus Weihrauch · 1987
Theory of Computation (Texts in Computer Science)Dexter C. Kozen · 2006
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Tail call In computer science, a tail call is a subroutine call performed as the final action of a procedure. If the target of a tail is the same subroutine, the…
- Tree traversal In computer science, tree traversal (also known as tree search and walking the tree) is a form of graph traversal and refers to the process of visiting…
- Mutual recursion In mathematics and computer science, mutual recursion is a form of recursion where two or more mathematical or computational objects, such as functions…
- Recursion Recursion occurs when the definition of a concept or process depends on a simpler or previous version of itself. Recursion is used in a variety of disciplines…
- Corecursion In computer science, corecursion is a type of operation that is dual to (structural) recursion. Whereas recursion consumes a data structure by first handling…
- Threaded binary tree In computing, a threaded binary tree is a binary tree variant that facilitates traversal in a particular order. An entire binary search tree can be easily…
- Fold (higher-order function) In functional programming, a fold is a higher-order function that analyzes a recursive data structure and, through use of a given combining operation,…
- Divide-and-conquer algorithm In computer science, divide and conquer, originally a political maxim, designates an algorithm design paradigm. A divide-and-conquer algorithm recursively…