Type theory and functional programming: a history
From Frege's Begriffsschrift and Russell's theory of types to the lambda calculus, Curry–Howard, ML and Haskell, dependent types and proof assistants, and functional ideas in mainstream languages. Moments are tagged (type theory, logic, lambda calculus, category theory, proof assistants, languages, compilers & implementation, effects, people) and colored by their first tag; eras are shown as spans and lines trace lineages. Dates are publication or release dates unless a note says otherwise. Summaries are our own; each moment links to its Wikipedia sources.
82 moments · 1879-01-01T00:00:00Z CE – 2025-01-01T00:00:00Z CE · by @athan · @athan
Moments
- Frege's Begriffsschrift
- Russell writes to Frege about his paradox
- Russell's theory of types
- Principia Mathematica
- Schönfinkel's combinators
- Curry's combinatory logic
- Church introduces the lambda calculus
- Curry notices formulas are types
- The Kleene–Rosser paradox
- Church and Turing: computability
- Church's simple theory of types
- Category theory
- Combinatory Logic, volume I
- LISP
- "Recursive Functions of Symbolic Expressions"
- Lawvere's functorial semantics
- Landin's SECD machine
- ISWIM: "The Next 700 Programming Languages"
- Automath
- Hindley's principal type schemes
- Howard's "formulae-as-types"
- Scott's domain theory
- Girard's System F
- Girard's paradox
- Cartesian closed categories
- LCF
- Martin-Löf type theory
- SASL
- ML
- Reynolds's polymorphic lambda calculus
- Scheme
- Backus's Turing Award lecture
- "A Theory of Type Polymorphism in Programming"
- Hope
- Howard's paper is published
- KRC
- Damas–Milner
- Nuprl
- The Calculus of Constructions
- Miranda
- Erlang
- Isabelle
- Linear logic
- The Haskell committee forms
- Coq
- Moggi's monads
- Theorems for free!
- The Definition of Standard ML
- Haskell 1.0
- The lambda cube