This notice comes a little late, but the latest version of OCaml, version 3.12, has been released. Surprisingly, for a point release there's a lot of interesting new language features:
Some of the highlights in release 3.12 are:
- Polymorphic recursion is supported, using explicit type declarations on the recursively-defined identifiers.
- First-class modules: module expressions can be embedded as values of the core language, then manipulated like any other first-class value, then projected back to the module level.
- New operator to modify a signature a posteriori:
S with type t := tau
denotes signature S
where the t
type component is removed and substituted by the type tau elsewhere.
- New notations for record expressions and record patterns:
{ lbl }
as shorthand for { lbl = lbl }, and { ...; _ }
marks record patterns where some labels were intentionally omitted.
- Local open
let open ... in ...
now supported by popular demand.
- Type variables can be bound as type parameters to functions; such types are treated like abstract types within the function body, and like type variables (possibly generalized) outside.
- The module type of construct enables to recover the module type of a given module.
- Explicit method override using the
method!
keyword, with associated warnings and errors.
I'm especially intrigued by first-class modules, and the destructive signature operations, both of which should make it much easier to write libraries.
Recent comments
23 weeks 1 day ago
23 weeks 1 day ago
23 weeks 1 day ago
45 weeks 3 days ago
49 weeks 5 days ago
51 weeks 2 days ago
51 weeks 2 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago