Everything about Parametric polymorphism
Basis of generic programming
In programming languages and type theory, parametric polymorphism allows a single piece of code to be given a "generic" type, using variables in place of actual types, and then instantiated with particular types as needed. Parametrically polymorphic functions and data types are sometimes called generic functions and generic datatypes, respectively, and they form the basis of generic programming. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Parametric polymorphismA 5-minute orientation
- Skim a recent paper: Parametric Subtyping for Structural Parametric PolymorphismInfluential work since 2022
- Pick up a classic book: Understanding object-oriented programming with JavaThe most-reprinted book on the subject
- Read the landmark paper: Parametric polymorphism and operational equivalenceCited 113 times
- Go sideways: Kind (type theory)A closely related topic
- Go sideways: Hindley–Milner type systemA closely related topic
📖 Definitions
Noun A way to make a computer language more expressive, while maintaining full static type safety, by allowing a function or a data type to be written generically so that it can handle values identically without depending on their type.
🏆 Landmark papers (most cited)
Parametric polymorphism and operational equivalence
Formal parametric polymorphism
Categorical data types in parametric polymorphism
Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphism
Typed parametric polymorphism for aspects
Realisability semantics of parametric polymorphism, general references and recursive types
Research Article: An object model with parametric polymorphism for dynamic segmentation
Parametric polymorphism for XML
🆕 Influential since 2022
Parametric Subtyping for Structural Parametric Polymorphism
Structural Subtyping as Parametric Polymorphism
TASTyTruffle: Just-in-Time Specialization of Parametric Polymorphism
C Language Extension to Support Procedural-Parametric Polymorphism
C Language Extension to Support Procedural-Parametric Polymorphism
📚 Books worth reading
Understanding object-oriented programming with JavaTimothy Budd · 1998- 📕New developments in biostatistics and bioinformaticsJianqing Fan, Jun S. Liu · 2009
Programming Languages and SystemsMatthias Felleisen · 2013
New developments in biostatistics and bioinformatics · 2009
Morphology, shape and phylogenyNorman MacLeod, Peter L. Forey · 2002
Automated Deduction – CADE-24Maria Paola Bonacina · 2013
Magnetic resonance in food scienceInternational Conference on Applications of Magnetic Resonance in Food Science (9th 2008 Reykjavík, Iceland) · 2009- 📕Magnetic resonance in food scienceInternational Conference on Applications of Magnetic Resonance in Food Science (9th 2008 Reykjavík, Iceland) · 2009
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Kind (type theory) In the area of mathematical logic and computer science known as type theory, a kind is the type of a type constructor or, less commonly, the type of a…
- Hindley–Milner type system A Hindley–Milner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as Damas–Milner or…
- System F System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus…
- Value restriction In programming languages with Hindley–Milner type inference and imperative features, in particular the ML programming language family, the value restriction…
- Type class In computer science, a type class is a type system construct that supports ad hoc polymorphism in a programming language. This is achieved by adding constraints…
- ML (programming language) ML (Meta Language) is the metalanguage developed for the Edinburgh LCF theorem prover in the 1970s. It is an early statically typed, functional language…
- Polymorphism (computer science) In programming language theory and type theory, polymorphism allows a value or variable to have more than one type and allows a given operation to be performed…
- Type inference In type theory, type inference (sometimes called type reconstruction) is the automatic detection of the type of an expression. These include programming…