Le filtrage permet de reconnaitre quelque chose avec différents cas :
let i = 10 in
let name = match i with
| 1 -> "1st"
| 2 -> "2nd"
| 3 -> "3rd"
| _ -> (string_of_int i) ^ "th"
in print_string name;;
Dans cet exemple, on filtre la valeur de i avec différents cas : si i correspond à 1, on retourne 1st, … et le dernier cas, représenté par un _
correspond à tout le reste (c’est un cas par défaut). Notez que toutes les valeurs possibles doivent être associées avec un cas du filtrage : il doit être exhaustif.
Le mot clé when
permet d’ajouter une condition à un cas :
let i = 10 in
let p = match i with
| n when n mod 2 = 0 -> "Pair"
| _ -> "Impair"
in print_string p;;