Spokes.wiki Search About
Computer Language source ↗ source url updated Thu Aug 06 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

F#

Don Syme designed F# at microsoft Research from 2005, taking OCaml’s core and putting it on .NET/CLI. Functional-first but multi-paradigm, with imperative and object-oriented code available when the platform demands it. Static, strong, Hindley–Milner inferred typing; everything is an expression; immutable bindings by default; pattern matching, algebraic data types, higher-order functions, currying. Governed by the F# Software Foundation together with Microsoft and outside contributors, with Syme as BDFL on design. Targets .NET, and via Fable also JavaScript, plus GPU code. Used in quantitative finance, machine learning and analytical work.

T2 — third-party encyclopaedic.

Three type-system features nothing else here has

type-system ranks languages by how much the types are asked to prove. F# adds cases the table did not anticipate:

  • Units of measure — metres and seconds checked for dimensional consistency at compile time. A physical-world constraint enforced by the type checker, and the only instance in the corpus.
  • Type providers — types generated at compile time from an external data source, so a database schema or a web service shows up as ordinary checked types. The type system reaching outside the program, which no other source contemplates.
  • Computation expressions — the monad pattern surfaced as syntax, covering async workflows, parallelism and query.

Hindley–Milner also gives the corpus its second named inference algorithm, hours after haskell supplied its first. Two of three type-first sources today name their algorithm; typescript, the most widely deployed, names none.

Hosted, and the fourth of its kind

F# runs on the CLI, which makes it a hosted-language alongside clojure (JVM/CLR/JS), elixir (BEAM) and kotlin. Two of those, Clojure and F#, target the CLR — the first time two corpus languages share a host that is not the JVM or the browser. Fable to JavaScript repeats the typescript/dart/kotlin pattern: whatever a language’s home runtime, something eventually compiles it to JavaScript.

Governance is a hybrid the language-governance page has not seen: a corporate research origin, a foundation, open contribution, and a single named designer holding the design decisions. Compare go‘s corporate stewardship and rust‘s foundation-over-core-team; this is both at once.

type-system · haskell · hosted-language · clojure · kotlin · typescript · language-governance · microsoft · programming-language · synthesis