F#
Functional-first, multi-paradigm. First appeared 2005; ml and functional; analytics, backend services.
Record¶
| First appeared | 2005 |
|---|---|
| Family | ML and functional |
| Paradigm emphasis | Functional-first, multi-paradigm |
| Typing | Static, strong, inferred |
| Memory | Tracing GC (.NET) |
| Execution | Bytecode + JIT |
| Primary domain | Analytics, backend services |
| Designers | Don Syme, Microsoft Research |
| Reference | https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/ |
| Last verified | not yet checked against its source by a human |
Dates are first public release or publication, not the start of internal development. Colour on the typing and memory tags encodes kind, never rank.
Influence¶
Within the ML and functional¶
Algebraic data types, exhaustive pattern matching, and inference-driven typing. The source of most type-system features adopted by mainstream languages since 2010.
| Language | First appeared | Typing | Memory | Execution |
|---|---|---|---|---|
| ML | 1973 | Static, strong, inferred | Tracing GC | Compiled or interpreted |
| Erlang | 1986 | Dynamic, strong | Per-process GC | Bytecode VM (BEAM) |
| Haskell | 1990 | Static, strong, inferred | Tracing GC | AOT compiled |
| OCaml | 1996 | Static, strong, inferred | Generational GC | AOT compiled or bytecode |
| Elixir | 2012 | Dynamic, strong | Per-process GC | Bytecode VM (BEAM) |
| Gleam | 2019 | Static, strong, inferred | Per-process GC | Compiled to Erlang or JavaScript |
| Unison | 2020 | Static, strong, inferred | Tracing GC | Interpreted or compiled |
7 other languages in this family, ordered by first appearance. F# itself is omitted. Source: languages.json.