| Université Paris 6 Licence d'informatique | Module de Programmation Année 2000-2001 |
|---|
let f = function m -> function n ->
let res = g (m * n) in
(((h res) = res), res);;
On cherche quelles sont les hypothèses minimales à faire sur
Env pour que cette déclaration soit acceptable par le système
CAML, en donnant à f le type le plus général
(autrement dit, le plus polymorphe) possible.
let f = function (x,z,y) ->
let r = ref (!z) in
r := !r + 1;
y := !y + 1 ;
if x then z := !r else failwith " erreur";;
T de listes de couples (clef, valeur
associée), appelée liste de conflits.
hash dite ``fonction de hachage'' permettant
d'associer un indice entier à toute clef.
c est
faite ainsi:
hash c est une liste vide, aucune valeur n'est associée à la
clef c
(c, v) et on retourne v.
hash: 'a -> int, proposez
un type de données ('a, 'b) hash_table permettant de
représenter les tables de hachage de valeurs 'a * 'b.
creer de type int -> 'a hash_table
telle que creer n retourne une table de hachage de taille n.
ajout telle que
ajout table clef valeur ajoute le couple (clef, valeur)
dans la liste contenue à l'indice
table.(hash (clef)). On
décide ici que l'élement est ajouté en tête de la liste.
rechercher telle que
rechercher table clef retourne la valeur associée à une
clef. Si la clef apparaît plusieurs fois, vous retournerez la
dernière valeur entrée. Cette fonction lèvera
l'exception Non_trouve si aucune valeur n'est associée à une
clef donnée.
liste_de_table permettant de convertir une
table en une liste d'associations.
iterer_table telle que
iterer_table f table exécute la fonction f pour tous les
éléments d'une table de hachage.
Ce document a été traduit de LATEX par HEVEA.