« Premiers pas en OCaml/Filtrage de motif » : différence entre les versions

Contenu supprimé Contenu ajouté
un exemple de filtrage de motif sur des entiers
→‎Filtrage de motif sur les tableaux : exemple avec Sys.argv
Ligne 152 :
== Filtrage de motif sur les tableaux ==
 
Le filtrage de motif est rarement utilisé sur les tableaux. D'une part cela requiert de connaître sa taille ou ses tailles possible, et d'autre part cela n'est pas très idiomatique.
''à écrire''
 
Voici cependant un exemple où le filtrage de motif s'applique sur le tableau <code>Sys.argv</code> ce qui permet de traiter différentes valeurs possibles de la ligne de commande avec laquelle le script est appelé :
 
Copiez dans un fichier <code>printsys.ml</code> :
 
<source lang="ocaml">
let () =
match Sys.argv with
| [| _; "--os-type" |] -> print_endline Sys.os_type
| [| _; "--word-size" |] -> print_int Sys.word_size; print_newline ()
| _ ->
prerr_endline ("Usage:\n" ^ Sys.argv.(0) ^
" ( --os-type | --word-size )")
</source>
 
Appelez ce script avec l'interpréteur <code>ocaml</code> :
 
<pre>
$ ocaml printsys.ml
Usage:
printsys.ml ( --os-type | --word-size )
 
$ ocaml printsys.ml --os-type
Unix
 
$ ocaml printsys.ml --word-size
32
 
$ ocaml printsys.ml --banane
Usage:
printsys.ml ( --os-type | --word-size )
</pre>
 
== Filtrage de motif sur les tuples ==