Le style fonctionnel rapproche le langage Caml de l’écriture mathématique, notamment grâce à larécursivité et aufiltrage par motif(pattern matching). Ce dernier, particularité de la famille ML, offre une syntaxe au cas par cas claire et lisible, et est aussi utilisé dans le rattrapage desexceptions, en particulier pour la gestion des erreurs. Letypage fort rend l’usage sûr mais moins souple pour le programmeur. Enfin, Caml pratique l’inférence de types pour déterminer automatiquement le type desvariables etexpressions et permet lagénéricité.
Descendant dulangage ML, le Caml est développé depuis 1985 par les équipes Formel puis Cristal de l'Inria et l'a notamment été pendant cinq ans par le professeurGuy Cousineau (université Paris-Diderot)[1]. La variante active de Caml estOCaml. Par rapport à l'ancienne varianteCaml Light, aujourd'hui obsolète, elle ajoute de nombreuses fonctionnalités, comme un système demodules beaucoup plus poussé et le support de la programmation orientée objet (reposant sur leduck typing) dont elle tire son nom.