Voir la version complète : [Haskell] Participez à la traduction d'un ouvrage sur le langage Haskell
khayyam90
25/11/2006, 18h57
Comme vous le savez peut-être, developpez.com est en train de traduire l'ouvrage A Gentle Introduction to Haskell, Version 98
Voici Le document original (http://gorgonite.developpez.com/livres/traductions/haskell/AGentleIntroductionToHaskell98/)
Nous avons besoin de votre aide
:fleche: vous êtes motivés pour participer à un projet ambitieux avec d'autres personnes
:fleche: vous ne maitrisez pas trop mal l'anglais et le français
alors vous pouvez participer :ccool:
Pour participer, contactez gorgonite (http://www.developpez.net/forums/member.php?u=82008)
gorgonite
29/12/2006, 16h33
pour infos, voici le lien vers l'ouvrage original http://gorgonite.developpez.com/livres/traductions/haskell/AGentleIntroductionToHaskell98/
le plan
* Introduction
* Values, Types, and Other Goodies
* Functions
* Case Expressions and Pattern Matching
* Type Classes and Overloading
* Types, Again
* Input/Output
* Standard Haskell Classes
* Monads
* Numbers
* Modules
* Typing Pitfalls
* Arrays
* The Next Stage
* Bibliography
* Complete Table of Contents
toutes les aides seront les bienvenues :)
pour le moment, il reste à faire les parties suivantes :
+ Standard Haskell Classes (en cours)
Il faut savoir qu'une partie me prend au plus 1h30... mise au gabarit comprise ;)
pour infos, voici la taille (en lignes) des parties
477 stdclasses.txt
ça n'a pas l'air de motiver grand monde... :cry:
Haskell n'est pas vraiment à la portée du premier venu. Il est très bien, très lisible et super compact mais il nécessite des connaissances solides en mathématiques (Théorie des catégories etc...) et en PLT que tout le monde n'a pas forcément. Et ce sans même parler du paradigme fonctionnel qui est très peu utilisé (regarde, rien que sur ce forum il n'y a aucun forum dédié à ce type de langage).
Perso je trouve que c'est une très bonne idée et je viendrais t'aider pour relire (pourquoi ne pas utiliser l'outil développé pour la traduction de Thinking in C++" ? ) au moins.
tu devrais faire un post sur la toute nouvelle liste Haskell-fr: https://www.zarb.org/mailman/listinfo/haskell-fr
Cela permettra de rameuter du monde et du bô monde ;)
gorgonite
31/12/2006, 13h07
Perso je trouve que c'est une très bonne idée et je viendrais t'aider pour relire (pourquoi ne pas utiliser l'outil développé pour la traduction de Thinking in C++" ? ) au moins.
dès que je saurais le faire marcher... ;)
tu devrais faire un post sur la toute nouvelle liste Haskell-fr: https://www.zarb.org/mailman/listinfo/haskell-fr
Cela permettra de rameuter du monde et du bô monde ;)
je vais aller voir :D
EDIT
le lien provisoire...
http://gorgonite.developpez.com/livres/traductions/haskell/gentle-haskell/
ps: je débute en Haskell...
gorgonite
31/12/2006, 15h14
tu devrais faire un post sur la toute nouvelle liste Haskell-fr: https://www.zarb.org/mailman/listinfo/haskell-fr
Cela permettra de rameuter du monde et du bô monde ;)
en fait, la mailing-list a été déplacée... http://haskell.org/mailman/listinfo/haskell-fr
et on m'a conseillé cet ouvrage pour les débutants http://darcs.haskell.org/yaht/yaht.pdf sous licence FDL
(une seconde traduction en projet)
en fait, la mailing-list a été déplacée... http://haskell.org/mailman/listinfo/haskell-fr
et on m'a conseillé cet ouvrage pour les débutants http://darcs.haskell.org/yaht/yaht.pdf sous licence FDL
(une seconde traduction en projet)
Oui j'ai vu. Ils ont même ouvert un espace (encore vide :cry:) sur le wiki.
Ces deux là (GIH et YAHT) sont bons je trouve, quoique en anglais.
Un livre que j'ai commandé récemment et que j'ai feuilleté (pas encore lu) c'est le livre de Hudak (Learning Haskell with multimedia) qui m'a vraiment l'air bien sympa.
En particulier il aborde le sujet des I/O (toujours un peu délicat) des les premiers chapitres la ou tu ne le trouves habituellement (qud c'est abordé) que dans les chapitres finaux (12 ou 13...) regarde pour plus de détails le papier de Chakravarty et al. sur Haskell comme premier langage pour apprendre. Il y détaille tout cela d'une facon fort éclairante.
Bonjour à tous. Je commence à travailler sur « Values, Types, and Other Goodies » alors me le piquez pas ;)
PS je travaille sur les sources tex.
gorgonite
19/01/2007, 19h04
Bonjour à tous. Je commence à travailler sur « Values, Types, and Other Goodies » alors me le piquez pas ;)
PS je travaille sur les sources tex.
je préférerais un format "texte brut", ce sera plus facile à passer au gabarit pour le site ;)
je te mets le fichier texte anglais...
Salut Gorgonite,
En fait, le fichier que tu me proposes est un fichier html. Pourquoi ne pas travailler sur les sources "*.verb" ? Cela permet non seulement de re-générer le html à partir des sources, mais aussi de générer des div/ps/pdf... sans compter qu'il est plus agréable de travailler sur les *.verb que sur les *.html.
Pour générer le html, il suffit de se placer dans le répertoire des sources, suivit d'un :
# make && ./make-html
Les fichiers html seront alors disponibles dans le sous-répertoire html. Si, par hasard, l'interpréteur Haskell gueule, genre :
runhugs: Error occurred
ERROR "tex.hs":1132 - Syntax error in expression (unexpected `}', possibly due to bad layout)
Ajouter quelques espaces devant les lignes 1132 et 1133 du fichier tex.hs... ça devrait le calmer.
(str,"") -> ("", str)
(o,';':s) -> (o,s)
Ah, juste une dernière chose : il faut ajouter
%**~pageHeader
au tout début des fichiers *.verb sur lesquels on travaille avant d'exécuter « make », et il faut modifier le fichier html.config comme suit (diff -U 3) :
--- html.config 1999-09-29 19:33:06.000000000 +0200
+++ ../../francais/html.config 2007-01-20 18:57:25.000000000 +0100
@@ -24,10 +24,11 @@
~style=<body bgcolor="#ffffff">
~top=<a href="index.html">top</a>
~id=<body bgcolor="#ffffff"><i>A Gentle Introduction to Haskell, Version 98</i><br>
-~footer=<hr>~id<a href="~prev.html">back</a> <a href="~next.html">next</a> ~top
+~footer=<hr>~id<a href="~prev.html">back</a> <a href="~next.html">next</a> ~top</html>
~sfooter=<hr>~id<a href="~next.html">next</a> ~top
~efooter=<hr>~id<a href="~prev.html">back</a> ~top
~header=~style ~id<a href="~prev.html">back</a> <a href="~next.html">next</a> ~top<hr>
~sheader=~style ~id<a href="~next.html">next</a> ~top<hr>
~eheader=~style ~id<a href="~prev.html">back</a> ~top<hr>
~indexHeader=<title>Haskell 98 Index</title><hr>~style <h3>Gentle Intro: Index</h3><hr>
+~pageHeader=<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf8"></head>
gorgonite
20/01/2007, 19h08
en fait ce format est assez pratique pour passer au gabarit pour developpez.com ;)
Re :)
en fait ce format est assez pratique pour passer au gabarit pour developpez.com ;)
Soit, je peux te livrer le résultat en html sans problème... mais si d'autres personnes participent à la traduction, il serait préférable qu'ils travaillent sur les *.verb pour les raisons que j'ai données plus haut. Ce qui (désolé si je me répète) n'empêche pas de te fournir le produit fini au format html, puisqu'il se génère en 10 secondes à partir des sources *.verb (instructions dans mon post précédent).
Le format du fichier sur lequel tu me proposes de travailler ne me semble pas différent de ceux générés par un « make && make-html » à partir des sources *.verb... Ou alors il y quelque chose qui m'échappe ?
gorgonite
20/01/2007, 20h01
j'ai fait le découpage à partir de la version html... donc ça doit être la même chose ;)
Bonjour à tous,
J'ai terminé le « goodies » (relectures, conseils, critiques et toussa bienvenus). J'attaque « functions »... me le piquez pas :]
gorgonite
22/01/2007, 22h48
J'ai terminé le « goodies » (relectures, conseils, critiques et toussa bienvenus).
Je viens tout juste de finir la mise au gabarit... en fait, c'est vraiment trop chiant :cry:
faudra que je me pose pour tout relire... mais pas ce soir ;)
pour infos, voilà le fichier de ta partie... si jamais tu sais gérer l'export des *.verb, ça me faciliterait le travail :D
si jamais tu sais gérer l'export des *.verb, ça me faciliterait le travail
Salut Gorgonite,
Je viens de m'installer tex4ht qui permet de convertir latex en xml. Si ça fonctionne, ça sera ensuite un jeu d'enfant de mettre ça en conformité pour votre site avec xslt. On aurait donc édition en *.verb -> export en latex (assuré par makefile fourni dans les sources du document original)-> export xml (avec tex4ht, à tester) -> xslt à créer pour votre gabarit. Mais bon, pareille que toi... à chaque jour suffit sa peine ;)
gorgonite
23/01/2007, 08h22
Salut Gorgonite,
Je viens de m'installer tex4ht qui permet de convertir latex en xml. Si ça fonctionne, ça sera ensuite un jeu d'enfant de mettre ça en conformité pour votre site avec xslt. On aurait donc édition en *.verb -> export en latex (assuré par makefile fourni dans les sources du document original)-> export xml (avec tex4ht, à tester) -> xslt à créer pour votre gabarit. Mais bon, pareille que toi... à chaque jour suffit sa peine ;)
parfait :D
au fait, mp-ises moi ton nom pour que je l'ajoute aux "contributeurs" de la traduction ;) (a moins que tu ne preferes ton pseudo :?)
Salut Gorgonite,
J'ai été un peu optimiste : le xslt prend plus de temps que prévu en raison de l'exportation de tex4ht qui est un peu moins propre que je ne l'espérais. Bref, afin que je puisse tester tout ça avant de t'envoyer le chapitre « fonctions », pourrais-tu mettre ici (ou m'envoyer par email), le fichier xsl que votre site utilise pour la mise en forme du document (http://gorgonite.developpez.com/livres/traductions/haskell/A_Gentle_Introduction_To_Haskell/) ?
Merci d'avance.
Cordialement,
Tutux
PS
au fait, mp-ises moi ton nom pour que je l'ajoute aux "contributeurs" de la traduction (a moins que tu ne preferes ton pseudo )
Bah... ça ne m'intéresse pas d'être cité. Si tu y tiens tu peux mettre Tutux, mais c'est franchement pas indispensable. Ou alors tu m'ajoutes à la liste des contributeurs en tant que « anonyme »... c'est trop la classe :)
InOCamlWeTrust
24/01/2007, 10h12
CDuce est ton copain si tu veux transformer du XML...
http://www.cduce.org/
CDuce est un langage de manipulation de documents XML, fonctionnel et écrit en Objective Caml... à soutenir !
Salut InOCamlWeTrust,
Merci et bien vu ! Je ne connaissais pas CDuce et ça m'a effectivement l'air d'être un langage sympathique quand on dépasse le cadre de ce que peut faire xslt (même si en l'occurence, les limites sont plutôt du coté de mes compétences xml/xsl). Dans un premier temps je vais essayer de paramétrer tex4ht afin qu'il différencie certaines balises, pour les traiter plus facilement avec xslt. Si je n'y arrive pas j'essaierai CDuce.
Meilleures salutations
InOCamlWeTrust
24/01/2007, 16h00
Salut.
On peut affirmer, et je crois sans trop se tromper, que les langages du type de CDuce sont ce qui remplacera à court ou moyen terme XSL-T : Microsoft investit en ce moment pour le dévéloppement de ce type de langage, et CDuce en particulier.
gorgonite
24/01/2007, 16h06
On peut affirmer, et je crois sans trop se tromper, que les langages du type de CDuce sont ce qui remplacera à court ou moyen terme XSL-T : Microsoft investit en ce moment pour le dévéloppement de ce type de langage, et CDuce en particulier.
le but de ce thread n'est pas de discuter de l'avenir de CDuce (que je trouve aussi très bien...).
il est toutefois possible d'ouvrir un autre thread pour faire un tel débat ;)
Hola,
J'ai terminé le chapitre « functions » mais je ne livrerai qu'après avoir trouvé un moyen d'exporter proprement les sources *.verb->*.tex au format xml imposé pour ce site. En fait, tex4ht est très puissant. Il devrait permettre une exportation en xml sans avoir besoin de le remanier ensuite en xslt, mais sa documentation laisse à désirer. Pour le maîtriser un peu il faut être capable de lire les sources du programme (en (La(TeX)). Je suis assez ignare en la matière et je me mets donc en pause quelques jours, le temps d'assimiler quelques indigestes documents sur TeX... Je n'abandonne pas ! :]
PS merci pour le xsl Gorgonite... y a pas encore toutes les balises que je cherche mais on se débrouillera comme ça.
Salut à tous,
J'ai pas encore fini mon bordel avec tex4ht mais j'attaque « case expressions and pattern matching »... me le piquez pas :aie:
Bonjour,
J'attaque «Type Classes and Overloading» («case expressions and pattern matching» terminé).
Hello,
Petite question : pourquoi ne pas mettre cette traduction à disposition en PDF ? Je pose la question parce que je renonce à essayer une exportation pour votre gabarit xml. Trop difficile d'exporter correctement les liens, les insertions de code, les symboles mathématiques non disponibles en utf8, et j'en passe. Il y a aussi la possibilité d'exporter tout ça très proprement en xhtml, par contre sa transformation en « developpez-com-xml » est également trop pénible (voir impossible sans intervention manuelle).
Je propose donc, soit xhtml, soit PDF. Dans les deux cas on travaille sur les sources, ce qui est plus logique et permet également de diffuser la traduction sans autres contraintes.
J'envoie un exemple de xhtml à Gorgonite pour voir si il pourrait s'intégrer facilement sur votre site.
PS j'ai terminé « Type Classes and Overloading », j'attaque « Types again ».
Moi fini «types again» et «input/output»... attaquer «standard Haskell classes». Vous pas prendre :pingoin2:
gorgonite
11/02/2007, 18h28
infos pour les suivants... pitié ne m'envoyez surtout pas le html généré avec cet outil :cry:
EDIT, la partie 3 est intégrée...
gorgonite
18/02/2007, 16h52
la partie 4 (case expressions and pattern matching) est intégrée...
pour infos, le format xml généré est assez pratique, mais ce serait mieux si on pouvait "séparer les parties"... car pour réussir à bien délimiter la section 4, j'ai un peu ramé :?
EDIT Partie 5 (Les classes de types et la surcharge) finie
EDIT2 Partie 6 (Les types, encore) finie
EDIT3 Partie 7 (Les entrées/sorties) finie
au passage, je passe pas mal de temps sur la mise au gabarit au lieu de traduire... si quelqu(es)'un(s) veu(len)t participer à ce travail, certes moins gratifiant, mais tout aussi indispensable, ils sont les bienvenus
:merci:
gorgonite
05/03/2007, 09h38
Partie 13 (Les tableaux) terminée...
gorgonite
14/03/2007, 09h11
Partie 11 (modules) terminée...
gorgonite
15/03/2007, 08h48
Partie 10 (nombres) terminée...
On arrive à la fin... :yaisse2:
dès que Tutux aura fini la partie qu'il est en train de faire, et que la correction orthographique sera faite, on pourra dire qu'on a fini
:merci: à tous
gorgonite
20/03/2007, 15h20
au passage, j'en profite pour demander s'il y a des volontaires pour faire une petite relecture.... c'est une condition indispensable à la publication ;)
:merci:
J'ai un peu lu (pas tout), c'est vraiment complet :king: Il y a pas mal de texte explicatif, le lecteur n'est pas renversé par du code hostile.
C'est parfois assez difficile, il faut relire deux fois, enfin, c'est un peu normal vu que je ne connais pas Haskell et que j'ai lu un peu en travers :)
bravo :bravo:
gorgonite
27/03/2007, 14h43
et on m'a conseillé cet ouvrage pour les débutants http://darcs.haskell.org/yaht/yaht.pdf sous licence FDL
(une seconde traduction en projet)
au passage, qui pense qu'il faille traduire aussi celui-ci ?
selon vous qu'apporte-il en plus du gentle introduction to haskell ?
il faut savoir que cela prend un certain temps... et qu'on préferera avancer sur des problèmes plus concrets si le besoin de traduction d'un tel ouvrage ne se fait pas sentir... ;)
:merci:
InOCamlWeTrust
28/03/2007, 10h15
Non, il n'apporte rien de plus : il est tout simplement plus verbeux que le Gentle Introduction to Haskell 98, donc moins pratique.
Les seules sections qui auraient été intéressantes sont celles qui ne sont pas encore écrites (section 10 Advanced Techniques).
InOCamlWeTrust
28/03/2007, 13h53
On pourrait aussi introduire des exemples CDuce !
gorgonite
28/03/2007, 14h12
On pourrait aussi introduire des exemples CDuce !
je ne connais que de nom ;)
mais c'est pas un langage fonctionnel "généraliste", parce qu'à ce rythme faudra aussi parler de Coq et Erlang
InOCamlWeTrust
28/03/2007, 17h55
Il me semble important de parler de CDuce pour la simple et bonne raison qu'il facilite énormément la manipulation de fichiers XML. Cependant, de par sa conception, CDuce est également adapté à la programmation généraliste, étant donné que l'on peut créer des structures de données complexes, plus riches (dans la pratique du tout fonctionnel) que les types Objective Caml habituels. Certes, ce n'est pas la même discipline de type, mais ça me semble être un très bon outil.
Je donne une référence comme point de départ :
http://www.cduce.org
Erlang et Coq sont beaucoup moins utiles dans la pratique.
gorgonite
28/03/2007, 18h16
Erlang et Coq sont beaucoup moins utiles dans la pratique.
ben suffit que tu me trouves un projet de taille industriel qui utilise CDuce, et on en reparle... :aie:
parce qu'à ma connaissance :
Erlang est (ou a été) très utilisé par Ericsson
Coq (ou ses concurrents comme Isabelle) sont également très utilisés dans tous les systèmes de preuves formels de système... même industriels ;)
InOCamlWeTrust
28/03/2007, 20h47
Non, CDuce n'est pas fait pour les "gros" projets, mais pour toutes ces petites (ou grosses) applications qui ont besoin soit de transformer du XML, soit de faire du traitement sur du XML, ou encore qui ont besoin de petits composants logiciels qui ont affaireà du XML... donc le champ d'application est beaucoup plus vaste et dépasse même le cadre strict de la programmation. Je n'ai jamais dit qu'Erlang ou Coq (qui d'ailleurs n'est pas réellement un langage de programmation à proprement parler) ne faisaient pas l'affaire...
gorgonite
03/04/2007, 10h19
au passage, j'en profite pour demander s'il y a des volontaires pour faire une petite relecture.... c'est une condition indispensable à la publication ;)
Salut,
je répète le processus... il faudrait relire de la partie 9 à la fin.
si chaque personne en fait une, cela prendra 30 min par personne, et on aura fini ;)
:merci:
gorgonite
22/04/2007, 20h50
pour infos, j'ai fini la partie 8... elle sera en ligne sous peu, ou demain ;)
EDIT mise en ligne
la traduction est donc terminée :)
EDIT la correction est maintenant terminée :yaisse2: :yaisse2:
jlandrei
05/05/2007, 12h01
Salut,
bravo pour votre travail de traduction.
Serait-il possible de réparer le lien proposant une version pdf de l'ouvrage traduit?
++
gorgonite
05/05/2007, 13h04
Serait-il possible de réparer le lien proposant une version pdf de l'ouvrage traduit?
effectivement le lien pour le pdf ne fonctionne pas encore... car nous (TuTux et moi) souhaitions mettre un pdf plus classique en ligne, et il n'est pas tout à fait prêt (on met au format *.verb officiel des documents haskell)
SpiceGuid
22/01/2008, 15h03
La traduction de comprehension lists ça ne devrait pas être les listes en compréhension par opposition aux listes en extension ?
D'une façon similaire on dit les ensembles définis en compréhension par opposition aux ensembles définis en extension.
c'est vraiment complet
Non ça n'est pas encore vraiment complet, j'ai certainement survolé trop vite mais je n'en ai pas vu assez sur certaines difficultés liées à l'évaluation paresseuse, notamment les fuites de mémoires (thunk qui ne seront jamais ni évaluées ni récupérées).
D'ailleurs pour la traduction de thunk j'aurais choisi suspension plutôt que pensée.
En tout cas :merci:, c'est certain qu'il est toujours plus facile d'avoir une référence disponible en français.
GnuVince
22/01/2008, 15h09
La traduction de comprehension lists ça ne devrait pas être les listes en compréhension par opposition aux listes en extension ?
D'une façon similaire on dit les ensembles définis en compréhension par opposition aux ensembles définis en extension.
Non (http://fr.wikipedia.org/wiki/Compr%C3%A9hension_de_liste)
InOCamlWeTrust
22/01/2008, 21h10
Non ça n'est pas encore vraiment complet, j'ai certainement survolé trop vite mais je n'en ai pas vu assez sur certaines difficultés liées à l'évaluation paresseuse, notamment les fuites de mémoires (thunk qui ne seront jamais ni évaluées ni récupérées).
Rien à voir avec les fuites de mémoire puisque les suspensions sont justement là pour ne pas évaluer !
D'ailleurs pour la traduction de thunk j'aurais choisi suspension plutôt que pensée.
Yeeeeeeeeessssssssssssss !
En tout cas :merci:, c'est certain qu'il est toujours plus facile d'avoir une référence disponible en français.
Yes my friend, but I guess that reading in English is not as painful as one may think once you are used to it.
SpiceGuid
23/01/2008, 19h18
"fuite de mémoire" n'est peut être pas la bonne formule, disons qu'un langage paresseux utilise plus de mémoire, surtout si il génère des thunks plus vite qu'il ne les évalue.
Dans des cas extrêmes une très grande quantité de thunks sont générés exclusivement pendant la première moitié du programme, la deuxième moitié étant exclusivement consacrée à leur évaluation, il faut alors utiliser une des techniques décrites sur cette page (http://users.aber.ac.uk/afc/stricthaskell.html) pour éliminer la surconsommation mémoire à mi-parcours.
Plus généralement, le document n'explique pas comment calculer la complexité en temps et en espace d'un algorithme, en présence d'évaluation paresseuse. C'est particulièrement délicat, sachant que la paresse est justement un mécanisme pour acheter du temps avec de l'espace, et que son utilisation dépend du programmeur mais aussi du compilateur.
Plus généralement, le document n'explique pas comment calculer la complexité en temps et en espace d'un algorithme, en présence d'évaluation paresseuse. C'est particulièrement délicat, sachant que la paresse est justement un mécanisme pour acheter du temps avec de l'espace, et que son utilisation dépend du programmeur mais aussi du compilateur.
http://www.cs.chalmers.se/~nad/publications/danielsson-popl2008.pdf :)
SpiceGuid
24/01/2008, 15h27
agda
types dépendants
modules paramétrés
monades annotées
overdose de semantique opérationnelle et de calcul des séquents
un peu de lambda-calcul pour se reposer le cerveau
Et c'est light-weight ?
Et c'est semi-formal ?
Tu as pas plus lourd et plus formel ?
Et toujours rien sur la complexité spatiale (qui est bien le vrai problème).
InOCamlWeTrust
25/01/2008, 16h09
Comme quoi, la complexité spatiale ou temporelle n'est pas une notion intrinsèque à l'algorithme ou au problème posé, mais dépend aussi du langage.
gorgonite
25/01/2008, 16h12
je trouve qu'on s'éloigne un peu du sujet...
si vous voulez un débat avec une question précise, dites-le, je vous créerais le poste avec vos réponses... ;)
SpiceGuid
03/03/2009, 16h03
VI-3. Les constructeurs stricts de données
http://gorgonite.developpez.com/livres/traductions/haskell/gentle-haskell/?page=moretypes
Est-ce que tu es pour remplacer « pensée » par « suspension » :question:
gorgonite
04/03/2009, 10h07
VI-3. Les constructeurs stricts de données
http://gorgonite.developpez.com/livres/traductions/haskell/gentle-haskell/?page=moretypes
Est-ce que tu es pour remplacer « pensée » par « suspension » :question:
c'est beaucoup mieux en effet... ;)