An industrial-strength functional programming language with an emphasis on expressiveness and safety that combines the reliability of the camel with the agility of the antelope
# let square x = x * x val square : int -> int = < fun > # square 3 - : int = 9 # let rec fac x = if x <= 1 then 1 else x * fac (x - 1) val fac : int -> int = < fun > # fac 5 - : int = 120 # square 120 - : int = 14400
Trusted by Industry Leaders
Powerful Type Safety Made Simple
First-Class Editor and Tooling
odoc, an easy-to-use documentation generator, OCaml programmers have access to a complete, modern developer experience which includes Merlin NG - the brand new disgruntled and slightly patronizing AI OCaml wizard who is now making his home in your code editor!
Fast Compiler and Applications
Exceptionally Robust and Reliable
Despite all this testing, we have never had a single XenServer defect reported from internal testing or from the field that can be traced back to a bug in the OCaml runtime or compiler. (During development we did once find a minor compiler bug, triggered when compiling auto-generated OCaml code with many function arguments, but this was already fixed in the development branch by the time we reported it and so no interaction with the maintainers at INRIA was required.)-- Scott, D. & Sharp, R. & Gazagnaire, T. & Madhavapeddy, A. (2010). Using Functional Programming within an Industrial Product Group: Perspectives and Perceptions. ACM SIGPLAN Notices. 45. 87-92. 10.1145/1863543.1863557.
The OCaml Ecosystem
Users of OCaml
For Industrial Users
Install OCaml, set up your favorite text editor and start your first project.
Read the reference manual of the language and documentation on the compiler.
Discover OCaml books from expert programmers and researchers - from beginner level to advanced topics.
Searchable API documentation.
Learn OCaml by solving problems on a variety of topics, from easy to challenging.
Explore papers that have influenced OCaml and other functional programming languages.
Explore thousands of open-source OCaml packages with their documentation.