- Caml Light
-
Caml Light est une implémentation légère du langage de programmation Caml développé par l'INRIA. Elle est stable et facilement portable. Cette version de Caml permet une programmation fonctionnelle et impérative. Caml Light ne permet pas la programmation orientée objet contrairement à OCaml, son successeur.
Ce langage est utilisé en classe préparatoires scientifiques (MPSI puis MP option info) pour initier les élèves à la programmation[1].
Sommaire
Exemples
Fonction factorielle
Pour des entiers naturels, la fonction factorielle est définie par :
et sa définition récursive est :
En Caml-light cela donne :
let rec fact = function | 0 -> 1 | n -> n * fact (n - 1);;
Algorithme d'Euclide
L'algorithme d'Euclide, pour calculer le pgcd de deux entiers naturels u, v, s'écrit en Caml Light
let rec pgcd u v = if u = 0 then v else if v < u then pgcd v u else pgcd (v mod u) u;;
Suite de Fibonacci
La suite de Fibonacci est définie par :
.
En Caml Light on a
let rec fibonacci n = match n with | 1 -> 1 | 2 -> 1 | m -> fibonacci (m - 1) + fibonacci (m - 2);;
Nous pouvons aussi écrire une version itérative de cet algorithme (ayant l'avantage de ne pas s'exécuter en temps exponentiel), utilisant la récursivité terminale :
let fibo_iteratif n = let rec fonction_auxilliaire a b k = match k with | 0 -> a | k -> fonction_auxilliaire b (a + b) (k - 1) in fonction_auxilliaire 0 1 n;;
Bibliographie
- [PDF] Pierre Weis, Xavier Leroy, LE LANGAGE CAML. Deuxième édition.
- Michel Demazure, Cours d'algèbre. Primalité, divisibilité, codes Cassini 1997. De nombreux algorithmes en Caml-light.
Liens externes
Notes et références
- Programme d'informatique en MPSI et MP, B.O. Hors série n° 3 du 29 avril 2004, annexe VII [PDF]
Wikimedia Foundation. 2010.