bonjour.
Soucieux de ne pas laisser mon cerveau s'encrouter, j'ai décidé d'essayer un peu les langages fonctionnels, et, après un rapide coup d'oeil, Ocaml m'a paru civilisé.
J'ai trouvé ce tutoriel en français. Que j'ai suivi(avec quelques fantaisies bien rigolotes) avec succès jusqu'à la partie "match". Et c'était cool.
L'exemple du tutorial est le suivant :Il marche parfaitement, évidemment. Mais j'ai voulu aller plus loin, et coder un fizzbuzz. Mon premier, basé sur un enchevetrement de if/else if fonctionnait bien, mais était horrible. J'ai donc essayé un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # let var = 2 ;; val var : int = 2 # match var with | 1 -> "un" | 2 -> "deux" | 3 -> "trois" | _ -> "je ne sais pas compter au delà de trois" ;; - : string = "deux"
ça n'a pas marché. J'ai essayé pas mal de choses, j'ai même essayé de mettre un booléen, mais j'ai eu l'impression qu'il est impossible de mettre autre chose qu'une valeur seule aux aiguillages. Est-ce que la limite est réelle, ou existe-t-il un moyen propre de tricher? Suis-je obligé de précalculer les restes de mes divisions dans des valeurs AVANT le match(ce qui le rendrait nettement moins tentant)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # let display_fizzbuzz var = match 0 with | var mod 15 -> "fizzbuzz" | var mod 5 -> "buzz" | var mod 3 -> "fizz" | _ -> string_of_int (var) ;;
Question subsidiaire : la boucle d'interaction sous windows a planté pas mal de fois. Bon, en tant que débutant, j'ai du faire pas mal d'erreurs, mais est-ce que c'est vraiment instable, ou est-ce que je devrais vérifier ma config(je suis sous windows 7).
Partager