Adloun

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

Le cours du chapitre · Tous les exercices du chapitre