jonnifyfsharp

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

C0.1.1 λ → LISP C0.1.2 the ML family C0.1.3 F# is born theory on .NET
C0.1.1 · From λ-calculus to LISP

The root of the line: Church's λ-calculus made functions the unit of computation; LISP made functions runnable data.

F# inherits functions as first-class values

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.

live module hub built dive ready soon specified

References

Sources

Related in this course