OCaml (option informatique) · Chapitre 5 · Exercice de TD
Recherche avec option
Les tableaux · niveau 2
Énoncé
Écrire indice x t renvoyant Some i (première position de x) ou None, par une boucle qui s'arrête dès qu'on a trouvé.
Corrigé
let indice x t =
let n = Array.length t in
let i = ref 0 and trouve = ref None in
while !i < n && !trouve = None do
if t.(!i) = x then trouve := Some !i;
i := !i + 1
done;
!trouve
La condition !i < n && !trouve = None (paresseuse) garantit deux choses : on ne déborde pas, et on cesse dès la première occurrence. Le type option évite une valeur sentinelle comme -1.
Exercices semblables
- Construire avec
Array.initcorrigé - Renverser en place corrigé
- Les fonctions du module
Arraycorrigé - Le piège de la valeur partagée corrigé
- Transposée d'une matrice corrigé