Logo de kxs.frFiches pour l'informatique

Énumérations

Déclaration

Les énumérations (variants) représentent des ensembles de valeurs finis. Les valeurs commencent nécessairement par une majuscule. Ils doivent être déclarés avant d'être utilisés :

# type direction = Nord | Est | Sud | Ouest;;
type direction = Nord | Est | Sud | Ouest

Nord, Est, Sud, Ouest sont les constructeurs du type direction

Pour déclarer une variable comme une énumération, il suffit de lui attribuer une valeur correspondant à un constructeur de l'énumération :

# let a = Nord;;
val a : direction = Nord

Filtre

Lorsque l'on veut tester la valeur d'une énumération, on peut utiliser match… with plutôt que des if then else imbriqués :

type direction = Nord | Est | Sud | Ouest
let a = Nord
let b =
match a with
| Nord -> "nord"
| Est -> "est"
| Sud -> "sud"
| Ouest -> "ouest"
let () = print_string b

On peut mettre plusieurs valeurs sur une même ligne :

type direction = Nord | Est | Sud | Ouest
let a = Nord
let b =
match a with
| Nord | Est | Ouest -> "pas sud"
| Sud -> "sud"
let () = print_string b

_ correspond à tous les cas restant :

type direction = Nord | Est | Sud | Ouest
let a = Nord
let b =
match a with
| Nord | Est | Ouest -> "pas sud"
| _ -> "sud"
let () = print_string b

Énumérations avec argument