next up previous contents index
Next: Égalité de types Up: Quelques éléments de Caml Previous: Types abréviations

Types abstraits

 

Si, dans l'interface d'un module (voir ci-dessous), on exporte un type sans rien en préciser (sans donner la liste de ses champs s'il s'agit d'un type enregistrement, ni la liste de ses constructeurs s'il s'agit d'un type somme), on dit qu'on a abstrait ce type, ou qu'on l'a exporté abstraitement. Pour exporter abstraitement le type t, on écrit simplement

type t;;

L'utilisateur du module qui définit ce type abstrait n'a aucun moyen de savoir comment le type t est implémenté s'il n'a pas accès au source de l'implémentation du module. Cela permet de changer cette implémentation (par exemple pour l'optimiser) sans que l'utilisateur du module n'ait à modifier ses propres programmes. C'est le cas du type des piles dans l'interface du module stack décrit ci-dessous.



1/11/1998