Discussion utilisateur:Yoric
Ajouter un sujetBienvenue !
[modifier le wikicode]J'ai vu que tu avais commencé Objective Caml, c'est une bonne idée. Tes contributions ont tout à fait leur place ici. Si tu as des questions sur l'utilisation de wikibooks, n'hésites pas à les poser sur le bistro ou directement ici-même. Bon courage pour la suite ! Sub 16 janvier 2008 à 18:45 (CET)
- Merci, je viendrai t'embêter si j'ai des questions. Yoric 18 janvier 2008 à 09:47 (CET)
- Et pis si ça se trouve, moi aussi, j'aurai le temps de mettre mon JdR en ligne un de ces jours :) Yoric 18 janvier 2008 à 09:48 (CET)
- C'est pas moi, c'est Cdang le responsable ;). Tu peux voir son travail qui est inactif pour l'instant pour des raisons qui lui sont propres. Si tu souhaites participer à ce projet, qui risque de déménager étant donné qu'il n'a pas vraiment sa place ici, tu seras le bienvenue... Sub 18 janvier 2008 à 12:59 (CET)
- Non, je suis dans une autre secte. Je donne dans le diceless :) Yoric 18 janvier 2008 à 21:09 (CET)
camlp4r...?
[modifier le wikicode]Bravo pour la rédaction du livre sur Ocaml, mais... pourquoi avoir utilisé cette extension dans l'ensemble du livre ? La majorité des exemples/tutoriaux/livres/cours/exercices disponibles, et surtout, le manuel de référence du langage sur le site de l'Inria, sont écrits en Ocaml standard, et la syntaxe spécifique des extensions ne fait précisément pas partie du langage. A mon avis, ce que tu as déjà écrit gagnerait très largement à être réécrit en syntaxe Ocaml usuelle, avec "let" partout où tu as écrit "value", ";;" au lieu de ";", pas de crochets autour de la suite des constructeurs d'un type variante, etc., en réservant la présentation des extensions à un chapitre isolé. Note qu'à ce détail près, je trouve que l'ensemble est bien présenté et bien écrit... Quelques suggestions pour la suite :
- La construction de valeurs de type produit est bien sûr à mentionner (il faudrait aussi parler d'ordre implicite sur les valeurs) et à mettre en parallèle avec la notion de type enregistrement, mais pour les types variantes (qui, contrairement aux types d'enregistrement, ne sont pas l'analogue des "structures" en C), mieux vaudrait un chapitre à part : par exemple un chapitre placé après un chapitre dédié aux listes et au pattern-matching sur les listes, le pattern-matching sur les valeurs de type variante généralisant celui sur les listes.
- Les notions de module/signature/interface sont un assez gros morceau du langage (sans parler de la notion de foncteur), et devraient être isolées dans un ou plusieurs chapitres. Le plus simple pour présenter la notion de module est peut-être de commencer par présenter le mécanisme de compilation séparée et le découpage du source en .ml/.mli, puis à mettre en parallèle les notions de structure/signature et de .ml/.mli.
- La comparaison objets/modules me paraît paumatoire : le regroupement d'éléments en module n'est pas l'analogue d'une définition de classe, mais plutôt celui d'un simple découpage logique du programme (les fonctions d'un même module n'ont pas de raison de travailler sur des données partagées et/ou persistantes à moins de se servir de références, et on ne peut pas créer l'équivalent d"instances" de modules, même si l'utilisation de foncteurs va plus ou moins dans ce sens). Indépendamment du système des modules, la partie objet d'Ocaml est bien ce qui permet de récupérer dans le langage les notions de classe, champ, méthode et héritage.
134.157.168.15 30 janvier 2008 à 17:14 (CET)
Merci pour les encouragements et les suggestions.
- Pour le moment, j'assume la syntaxe révisée -- j'enseigne avec cette syntaxe et je suis satisfait des résultats. Par contre, il va falloir que je mette en ligne un convertisseur syntaxe originale <-> syntaxe révisée.
- Pour les types variantes, je suis en train de tout réorganiser en commençant effectivement par les listes et le filtrage par motifs. On verra combien de place ça prend avant de décider si un chapitre entier est nécessaire.
- Je compte présenter d'abord l'utilisation de modules, puis la compilation séparée et ensuite les interfaces/implantations et enfin les structures/signatures.
- Pour objets/modules, effectivement, c'est un peu paumatoire. Faut que j'y réfléchisse.