Module C0.1
The ML lineage
Inferred types, functions as values, data you cannot mutate by accident.
F# inherits its shape from the ML family — a tradition of typed functional programming worked out across decades, from a mathematical model of computation to the OCaml syntax F# starts from. Static types you rarely have to write down; functions passed and returned like any other value; immutability as the default; algebraic data with pattern matching to take it apart. This module follows the line that carried those ideas: λ-calculus → LISP → ML → OCaml → F#, in three dives.
What F# inherits from this line
F# is not an invention from scratch. Each milestone in the ML lineage contributed a piece, and F# carries the whole set. Select a dive below to read its one-line summary and the trait it hands to F#.
The first dive reaches the root — the λ-calculus, a model of computation built from functions, and LISP, the first language to make functions data. The second covers the ML family and Hindley–Milner type inference, the idea that a compiler can work out the types so a programmer rarely writes them. The third is F#'s birth as OCaml retargeted to the .NET runtime.
The three dives · select one
The root of the line: Church's λ-calculus made functions the unit of computation; LISP made functions runnable data.
Open this dive · or pick another above
One line, three steps: a model of computation, a language that made it runnable, and a type system that made it safe — all carried into F#.
The three dives
Read them in order. Each stands on the documented record — the papers, the languages, and the people who built them — and names the trait F# takes from it.
From λ-calculus to LISP
Church's model of computation, and the first language to treat functions as data.
- rootfunctions as the unit of computation
The ML family
SML, OCaml, and Hindley–Milner inference — the typed branch F# most resembles.
- typesfull type inference & algebraic data
F#’s birth
Don Syme, Microsoft Research, and OCaml retargeted to the .NET runtime.
- .NETOCaml’s core on a managed platform
References
Sources
- Don Syme et al. — The Early History of F# — the HOPL account of F#'s design and its OCaml/ML roots.
- Microsoft — F# documentation — the language guide and reference.
- The F# Software Foundation — the language's home, history, and community.
Related in this course
- C0.1.1 — From λ-calculus to LISP — the root of the line.
- C0 — History — the chapter this module opens.
- Elixir F0.1 — the evolution of functional languages — the same lineage, told for the BEAM.