Live briefing
Everything about Mutual recursion
Two functions defined from each other
In mathematics and computer science, mutual recursion is a form of recursion where two or more mathematical or computational objects, such as functions or datatypes, are defined in terms of each other. Mutual recursion is very common in functional programming and in some problem domains, such as recursive descent parsers, where the datatypes are naturally mutually recursive. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Mutual recursionA 5-minute orientation
- Skim a recent paper: The Use of Mutual Recursion in Matrix Based Nominal Declension Model Following Pāṇinian MethodInfluential work since 2022
- Pick up a classic book: How to Design ProgramsThe most-reprinted book on the subject
- Read the landmark paper: Reference counting can manage the circular invironments of mutual recursionCited 25 times
- Go sideways: Recursion (computer science)A closely related topic
- Go sideways: Recursive data typeA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Reference counting can manage the circular invironments of mutual recursion
Verification of Programs with Mutual Recursion in Pifagor Language
A gentle introduction to mutual recursion
Mutual recursion in Algol 60 using restricted compilers
The trouble with mutual recursion in Concurrent Euclid
Verification of Programs with Mutual Recursion in the Pifagor Language
Towards a facility for lexically scoped, dynamic mutual recursion in Scheme
An alternative approach to mutual recursion in Algol 60 using restricted compilers
🆕 Influential since 2022
📚 Books worth reading
How to Design ProgramsMatthias Felleisen · 2001
Introduction to automata theory, languages, and computationJohn E. Hopcroft, Jeffrey D. Ullman · 1979
Truth in motionMartin Holbraad · 2012
Programming in HaskellGraham Hutton · 2007
The Data Model Resource BookLen Silverston · 2001- 📕Java for everyoneCay S. Horstmann · 2010
Java for everyoneCay S. Horstmann · 2012
Big JavaCay S. Horstmann · 2012
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Recursion (computer science) In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same…
- Recursive data type In computer programming, a recursive data type is a data type whose definition contains values of the same type. It is also known as a recursively defined…
- 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…
- 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…
- Standard ML Standard ML (SML) is a general-purpose, high-level, modular, functional programming language with compile-time type checking and type inference. It is…
- Inline expansion In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function…
- Computable function Computable functions are the basic objects of study in computability theory. Informally, a function is computable if there is an algorithm that computes…
- Recursive descent parser In computer science, a recursive descent parser is a kind of top-down parser built from a set of mutually recursive procedures (or a non-recursive equivalent)…