OCaml is a programming language created in 1996 by Xavier Leroy.
OCaml ( oh-KAM-əl), originally named Objective Caml, is the main implementation of the programming language Caml, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez and others in 1996. A member of the ML language family, OCaml extends the core Caml language with object-oriented programming constructs. OCaml's toolset includes an interactive top-level interpreter, a bytecode compiler, a reversible debugger, a package manager (OPAM), and an optimizing native code compiler. Read more on Wikipedia...
#46on PLDB | 26Years Old | 3.3kUsers |
;;
print_string "Hello, world!\n"
print_string "Hello World\n"
(* Hello World in OCaml *)
print_string "Hello World!\n";;
(*
* Copyright (c) 2013 Jeremy Yallop.
*
* This file is distributed under the terms of the MIT License.
* See the file LICENSE for details.
*)
let string_of format v =
let buf = Buffer.create 100 in
let fmt = Format.formatter_of_buffer buf in begin
format fmt v;
Format.pp_print_flush fmt ();
Buffer.contents buf
end
fun x_1 -> (x_1 *
let y_3 =
let y_2 = (x_1 * 1)
in (y_2 * y_2)
in (y_3 * y_3))
as assert begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer lazy let match method module mutable new object of open private raise rec sig struct then to true try type value val virtual when while with
Feature | Supported | Example | Token |
---|---|---|---|
Binary Literals | ✓ | ||
Integers | ✓ | ||
Floats | ✓ | ||
Hexadecimals | ✓ | ||
Octals | ✓ | ||
Conditionals | ✓ | ||
Functions | ✓ | ||
Classes | ✓ | ||
While Loops | ✓ | ||
Booleans | ✓ | true false | |
Print() Debugging | ✓ | print_string | |
MultiLine Comments | ✓ | (* A comment *) |
(* *) |
Module Pattern | ✓ | (* In OCaml, every piece of code is wrapped into a module. *) (* amodule.ml *) let hello () = print_endline "Hello" (* bmodule.ml *) Amodule.hello () |
|
Multiple Inheritance | ✓ | ||
Comments | ✓ | (* This is a single-line comment. *) (* This is a * multi-line * comment. *) |
|
Semantic Indentation | Ï´ | ||
Line Comments | Ï´ |
repo | stars | description |
---|---|---|
coq | 2275 | "Coq is a formal proof management system. It provides a formal language to write mathematical definitions executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs." |
pyre-check | 2985 | Performant type-checking for python. |
ocaml | 2473 | "The core OCaml system: compilers runtime system base libraries" |
flow | 19958 | Adds static typing to JavaScript to improve developer productivity and code quality. |
infer | 10169 | "A static analyzer for Java C C++ and Objective-C" |
title | author | year | reviews | ratings | rating |
---|---|---|---|---|---|
Real World OCaml: Functional programming for the masses | Yaron Minsky | 2013 | 7 | 88 | 4.28 |
Unix System Programming in OCaml | Xavier Leroy | 1994 | 0 | 1 | 4.00 |
Apprendre à programmer avec OCaml | Sylvain Conchon | 2014 | 0 | 1 | 4.00 |
Using, Understanding, and Unraveling The OCaml Language: From Practice to Theory and vice versa | Didier Rémy | 0 | 1 | 5.00 | |
Apprendre à programmer avec OCaml: Algorithmes et structures de données (Noire) | Jean-Christophe Filliatre | 0 | 0 | 0.0 |