Python est beaucoup plus connu que OCaml et Haskell, en particulier dans la communauté des "scientifiques non-informaticiens" qui codent des scripts pour leur boulot, mais sans vraiment une formation...
Type: Messages; Utilisateur: gasche
Python est beaucoup plus connu que OCaml et Haskell, en particulier dans la communauté des "scientifiques non-informaticiens" qui codent des scripts pour leur boulot, mais sans vraiment une formation...
Tu trouveras un grand nombre de conseils, indications et discussions dans les Guidelines Caml. Il ne faut pas les prendre comme des règles absolues, mais c'est certainement un bon début.
Sinon,...
Oui, c'est ça. Maintenant tu obtiens "rev", qui renverse une liste, gratuitement :
let rev liste =
let rec renv a b = match a with
| [] -> b
| hd::tl -> renv tl (hd::b) in
renv...
Non, ça ne marche pas : quand tu écris "x :: y", il faut que le x soit un élément, et le y une liste. Dans ton code, ((renv ...) :: b) ne peut pas marcher.
http://bluestorm.info/tmp/rev_append.png
Non justement, là tu as codé la concaténation simple; c'est utile, mais ce n'est pas ce qu'on veut, puisque ça n'aide pas à renverser une liste : on voudrait que quand tu fais "renverse_dans a b",...
Dans ton code, tu considères le filtrage sur "head :: tail", mais tu n'utilises plus la variable "head" dans ce que tu renvoies, alors que c'est le content du premier élément de la liste. Il faut que...
let rec renverse_dans a b = match a with
| [] -> b
| tete::queue -> renverse_dans ... ...
Tu peux le faire !
Comme exercice sur les listes, tu peux recoder l'ensemble des fonctions du module List : documentation du module List.
Pour la fonction "rev" qui inverse les listes, tu devrais commencer par coder...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.