Caml (originally an acronym for Categorical Abstract Machine Language) is a dialect of the ML programming language family, developed at INRIA and formerly at ENS.
Like many descendants of ML, Caml is statically typed, strictly evaluated, and uses automatic memory management.
The first Caml implementation in Lisp was nicknamed "Heavy CAML" because of its memory and CPU requirements relative to its successor Caml Light that was implemented in C by Xavier Leroy and Damien Doligez. In addition to a complete rewriting, CAML Special Light added a powerful (applicative) module system to the core language.
Currently, the main implementation of Caml is OCaml, which adds many new features to the language including an object layer.
In the following, #
represents the OCaml prompt.
Many mathematical functions, such as factorial, are most naturally represented in a purely functional form. The following recursive, purely functional Caml function implements factorial:
CAML may mean:
Dices que no hay motivos
y que siempre me has querido.
Pero veo que te vas,
siento que te he perdio.
Sin echar la vista atras
con la maleta entre tus manos
vas subiendo en ese tren
que te aparta de mi lado.
Y besame una vez más
antes de marcharte,
y cuentame cuanto tiempo necesitare
para olvidarte,
si lo eres todo para mi.
Y cuentame cuanto tiempo necesitare
para olvidarte
si te querré hasta morir