Adloun

Le mot le plus fréquent

Exercice · OCaml (option informatique), chapitre 8 — Piles, files et tables de hachage

Énoncé

À partir de la table d'occurrences (exercice 6), écrire plus_frequent t qui renvoie le mot de plus grand effectif, à l'aide de Hashtbl.iter.

Corrigé

let plus_frequent t =
  let meilleur = ref "" and maxi = ref 0 in
  Hashtbl.iter
    (fun mot n -> if n > !maxi then begin maxi := n; meilleur := mot end)
    t;
  !meilleur

Hashtbl.iter applique la fonction à chaque liaison (mot, n) ; on retient au passage le maximum dans deux références. L'ordre de parcours d'une table n'est pas spécifié, mais peu importe pour chercher un maximum. (Sur une table vide, la fonction renvoie "" ; on pourrait préférer un string option.)

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.