timescale.info
Sign inSign up

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

  1. Frege's Begriffsschrift
  2. Russell writes to Frege about his paradox
  3. Russell's theory of types
  4. Principia Mathematica
  5. Schönfinkel's combinators
  6. Curry's combinatory logic
  7. Church introduces the lambda calculus
  8. Curry notices formulas are types
  9. The Kleene–Rosser paradox
  10. Church and Turing: computability
  11. Church's simple theory of types
  12. Category theory
  13. Combinatory Logic, volume I
  14. LISP
  15. "Recursive Functions of Symbolic Expressions"
  16. Lawvere's functorial semantics
  17. Landin's SECD machine
  18. ISWIM: "The Next 700 Programming Languages"
  19. Automath
  20. Hindley's principal type schemes
  21. Howard's "formulae-as-types"
  22. Scott's domain theory
  23. Girard's System F
  24. Girard's paradox
  25. Cartesian closed categories
  26. LCF
  27. Martin-Löf type theory
  28. SASL
  29. ML
  30. Reynolds's polymorphic lambda calculus
  31. Scheme
  32. Backus's Turing Award lecture
  33. "A Theory of Type Polymorphism in Programming"
  34. Hope
  35. Howard's paper is published
  36. KRC
  37. Damas–Milner
  38. Nuprl
  39. The Calculus of Constructions
  40. Miranda
  41. Erlang
  42. Isabelle
  43. Linear logic
  44. The Haskell committee forms
  45. Coq
  46. Moggi's monads
  47. Theorems for free!
  48. The Definition of Standard ML
  49. Haskell 1.0
  50. The lambda cube