Pour le _ -> 0, c'est quelque chose de très puissant.
En OCAML, on peut faire de la programmation par filtrage (i.e. a coup de switch mais en beaucoup plus puissant).
Pour additionner les éléments d'une liste, on peut faire de la façon suivante:
let rec glop l=match l with
[] -> 0
| x::l2 -> 1+(glop l2)
le _ sert quand on ne moque du reste. Par exemple, pour tester si une liste ne contient qu'un seul élément (exemple débile, je sais), on peut écrire:
let foo l = match l with
_::[] -> true
| _ -> false
Dans l'exemple de la matrice, ce mécanisme est utilisé avec un mécanisme de récupérations d'erreurs.
Si on exécute un programme qui peut lancer des erreurs, on peut les rattraper à coup de try ... with
try
mon_code_principal
with
qu'est-ce que je fais en cas d'erreur
comme « mon_code_principal » peut lancer plusieurs type d'erreur, la section with
fait du filtrage sur le type d'erreur
try
mon_code
with
division_by_zero -> print "division par zéro = la tête à Toto"
| parse_error -> print "apprend à écrire banane !"
Dans le coup de la matrice, on a besoin de calculer la taille de la matrice. Il peut y avoir un problème avec une matrice vide et seulement dans ce cas. On fait donc un
[^] # Re: Dommage...
Posté par fmaz fmaz . En réponse à la dépêche OCaml 3.10.0 est sorti. Évalué à 3.
Pour le _ -> 0, c'est quelque chose de très puissant.
En OCAML, on peut faire de la programmation par filtrage (i.e. a coup de switch mais en beaucoup plus puissant).
Pour additionner les éléments d'une liste, on peut faire de la façon suivante:
let rec glop l=match l with
[] -> 0
| x::l2 -> 1+(glop l2)
le _ sert quand on ne moque du reste. Par exemple, pour tester si une liste ne contient qu'un seul élément (exemple débile, je sais), on peut écrire:
let foo l = match l with
_::[] -> true
| _ -> false
Dans l'exemple de la matrice, ce mécanisme est utilisé avec un mécanisme de récupérations d'erreurs.
Si on exécute un programme qui peut lancer des erreurs, on peut les rattraper à coup de try ... with
try
mon_code_principal
with
qu'est-ce que je fais en cas d'erreur
comme « mon_code_principal » peut lancer plusieurs type d'erreur, la section with
fait du filtrage sur le type d'erreur
try
mon_code
with
division_by_zero -> print "division par zéro = la tête à Toto"
| parse_error -> print "apprend à écrire banane !"
Dans le coup de la matrice, on a besoin de calculer la taille de la matrice. Il peut y avoir un problème avec une matrice vide et seulement dans ce cas. On fait donc un
try
length matb.(0)
with
_ -> 0
C'est tout.