OCaml (option informatique) · Chapitre 1 · Exercice de TD
Manipuler des n-uplets
Découvrir OCaml : expressions, valeurs et types · niveau 2
Énoncé
Écrire echange qui échange les deux composantes d'un couple, puis normalise qui, à un couple d'entiers avec , associe le couple . Donner les types.
Corrigé
let echange (x, y) = (y, x) (* 'a * 'b -> 'b * 'a *)
let normalise (a, b) = (a / b, a mod b) (* int * int -> int * int *)
echange est polymorphe (elle ne regarde pas le contenu, seulement la structure de couple) ; normalise est forcée à int par les opérateurs / et mod. La précondition relève du contrat : la fonction ne promet rien si on la viole.
Exercices semblables
- Portée lexicale corrigé
- Application partielle corrigé
- Fonction d'ordre supérieur et polymorphisme corrigé
- L'algorithme d'Euclide corrigé
- Suite définie par récurrence mutuelle corrigé