Live briefing
Everything about Algebraic data type
Data type defined by combining other types
In computer programming, especially in functional programming and type theory, an algebraic data type (ADT) is a composite data type, i.e. a type formed by combining other types. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Algebraic data typeA 5-minute orientation
- Skim a recent paper: The Essence of Generalized Algebraic Data TypesInfluential work since 2022
- Pick up a classic book: Initial computability, algebraic specifications, and partial algebrasThe most-reprinted book on the subject
- Read the landmark paper: Algebraic implementation of abstract data typesCited 95 times
- Go sideways: Recursive data typeA closely related topic
- Go sideways: Tagged unionA closely related topic
📖 Definitions
Noun A data type formed by combining other types.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Algebraic implementation of abstract data types
Some definitions for algebraic data type specifications
Algebraic implementation of abstract data types
Oblivious algebraic data types
Stratified type inference for generalized algebraic data types
On the data type extension problem for algebraic specifications
A Tool for Testing Data Type Implementations from Maude Algebraic Specifications
Simple algebraic data types for C
🆕 Influential since 2022
📚 Books worth reading
Initial computability, algebraic specifications, and partial algebrasHorst Reichel · 1987
Quality of Communication-Based SystemsGünter Hommel · 1995- 📕Structural induction on partial algebrasHorst Reichel · 1984
Algebraic methodology and software technologyGerhard Goos, Juris Hartmanis · 1999
Recent trends in algebraic development techniquesMartin Wirsing, Dirk Pattinson · 2003
Algebraic specifications in software engineeringIvo van Horebeek · 1989- 📕Order-sorted algebra solves the constructor-selector, multiple representation and coercion problemsJoseph Goguen · 1987
- 📕Gleichungen in der Algebra der binären RelationenWolfgang Schönfeld · 1981
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- 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…
- Tagged union In computer science, a tagged union, also called a variant, variant record, choice type, discriminated union, disjoint union, sum type, or coproduct, is…
- Anamorphism In computer programming, an anamorphism is a function that generates a sequence by repeated application of the function to its previous result. You begin…
- Zipper (data structure) A zipper is a technique of representing an aggregate data structure so that it is convenient for writing programs that traverse the structure arbitrarily…
- Pattern matching In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast…
- Mogensen–Scott encoding In computer science, Scott encoding is a way to represent algebraic data types in the lambda calculus, following their syntactic definition without regard…
- Generalized algebraic data type In functional programming, a generalized algebraic data type (GADT, also first-class phantom type, guarded recursive datatype, or equality-qualified type)…
- 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,…