Haskell
– Bases, culture et pédagogie

Quelques raccourcis :
Quelques lectures « essentielles » sur le langage
Haskell.
Quelques pistes pour apprendre
Haskell :
- Introduction au langage :
- Sujets plus avancés :
- À propos de l'apprentissage de
Haskell :
- L'alphabet de
Haskell : http://www.cis.upenn.edu/~byorgey/haskell-alphabet/
- Le currying, qui transforme une fonction à paramètres en une fonction
à paramètre retournant une fonction à paramètres et qui est très utile dans bien des
langage fonctionnels : http://learnyouahaskell.com/higher-order-functions
- Comprendre un peu mieux
Haskell par une bande dessinée,
texte d'Eward Z. Yang en 2011 : http://blog.ezyang.com/2011/04/the-haskell-heap/
- Écrire un programme
Haskell : http://haskell.org/haskellwiki/How_to_write_a_Haskell_program
- Pas si magique que ça : http://netsuperbrain.com/blog/posts/haskells-evaluation-isnt-magic/
- Penser de manière
fonctionnelle avec
Haskell, par Paul Callaghan en
2012 :
http://pragprog.com/magazines/2012-09/thinking-functionally-with-haskell
- Apprendre
Haskell, The Hard Way, par Yann Esposito en
2012 :
http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/
- Quelques trucs à savoir à propos de la syntaxe de
Haskell, par
Bartosz Milewski en 2012 :
http://fpcomplete.com/ten-things-you-should-know-about-haskell-syntax/
- En 2013, Gabriel Gonzales explique la
différence entre énoncés et expressions en
Haskell :
http://www.haskellforall.com/2013/07/statements-vs-expressions.html
- Raisonner par équations, par Gabriel Gonzalez en
2013 :
http://www.haskellforall.com/2013/12/equational-reasoning.html
- En 2014, Stephen Diehl explique ce qu'il
aurait aimé savoir alors qu'il apprenant
Haskell 2.0 :
http://dev.stephendiehl.com/hask/
-
Haskell
évite bien des erreurs bêtes aux programmeuses et aux programmeurs, mais ce
n'est pas une panacée, comme le rappelle John D. Cook en
2015 :
http://www.johndcook.com/blog/2015/06/04/launching-missiles-with-haskell/
Idées et opinions
Réflexions sur le langage :
- Ce que
Haskell n'a pas (et, selon l'auteur, tant mieux!) : http://elaforge.blogspot.com/2011/07/what-haskell-doesnt-have.html
-
Haskell
par son auteur :
http://www.techworld.com.au/article/261007/-z_programming_languages_haskell?pp=1
- À propos de l'importance de ce langage :
http://www.haskell.org/complex/why_does_haskell_matter.html
-
Haskell
et la productivité :
http://www.defmacro.org/ramblings/haskell-productivity.html
- Le marketing de
Haskell : http://www.haskell.org/pipermail/haskell/2009-April/021173.html
- Refactoriser ou réécrire? http://blog.objectmentor.com/articles/2009/08/05/functional-refactoring-and-you-cant-get-there-from-here
-
Haskell en 2010 : http://www.haskell.org/pipermail/haskell/2010-July/022189.html
- Pourquoi
Haskell n'est-il pas plus populaire dans l'industrie? http://www.palgorithm.co.uk/2010/05/why-isnt-haskell-popular-in-industry/
- Éloge de la simplicité avec
Haskell, par Gabriel Gonzales en
2013 :
http://www.haskellforall.com/2013/08/sometimes-less-is-more-in-language.html
- En 2013, Sebastiaan Visser nous enjoint de
programmer en
Haskell en oubliant un peu le côté mathématique et
formel, et de prendre soin de programmer, tout simplement :
http://fvisser.nl/post/2013/aug/6/programming-haskell-doesnt-require-any-category-theory.html
- Dans cette réflexion de 2012, Conal
Elliott se questionne sur les raisons qui
portent des gens à croire qu'en
Haskell, tout serait une fonction (même 3) :
http://conal.net/blog/posts/everything-is-a-function-in-haskell
- Programmer avec
Haskell sous
Microsoft Windows, texte de
Finn Espen Gundersen en 2013 :
http://www.gundersen.net/haskell-on-windows/
- Selon Peter Jones en 2013, le monde a besoin
de
Haskell :
http://www.devalot.com/articles/2013/07/why-haskell.html
- L'évolution (un peu humoristique) d'un programmeur
Haskell, selon
Fritz Ruehr en 2001 :
http://www.willamette.edu/~fruehr/haskell/evolution.html
- Utiliser
Haskell en pratique, par Andy Friesen en
2014 :
http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/
- Mauvaises pratiques avec
Haskell, par Gabriel Gonzalez en
2014 :
http://www.haskellforall.com/2014/04/worst-practices-are-viral-for-wrong.html
- Texte de 2014 par Tim Philip Williams
exprimant l'opinion que le Killer App pour
Haskell, donc
l'application idéale du langage, serait l'écriture de
compilateurs :
http://www.timphilipwilliams.com/posts/2014-05-22-the-essence-of-compilation.html
- Utiliser
Haskell tout en « descendant » jusqu'à l'utilisation de
pointeurs, par Ranjit Jhala en 2014 :
http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2014/05/28/pointers-gone-wild.lhs/
- Pourquoi un mathématicien devrait considérer l'utilisation de
Haskell,
texte de Dan Piponi en 2006 :
http://blog.sigfpe.com/2006/01/eleven-reasons-to-use-haskell-as.html
- Lettre adressée à un « jeune programmeur
Haskell enthousiaste », par
Gershom Bazerman en 2014 :
http://comonad.com/reader/2014/letter-to-a-young-haskell-enthusiast/
- Travailler de manière productive avec
Haskell, présentation de Greg Weber
en 2014 :
https://app.doxiq.com/d/rbczklzyvgczkfgh/Getting-it-Done-with-Haskell-pdf
- Selon Danny Gratzer en 2013, il ne vaut pas la
peine d'apprendre la théorie des catégories pour programmer avec
Haskell :
http://jozefg.bitbucket.org/posts/2013-10-14-please-dont-learn-cat-theory.html
- En 2014, Michael O. Church s'insurge contre
celles et ceux qui prétendent que les programmeuses et les programmeurs
Haskell sont des informaticien(ne)s de second rang :
http://michaelochurch.wordpress.com/2014/10/07/are-haskell-engineers-second-rate/
- En quoi
Haskell facilite la refactorisation, un texte de Neil Mitchell en
2015 :
http://neilmitchell.blogspot.fr/2015/02/refactoring-with-equational-reasoning.html
- Apprendre
Haskell pour qui n'est pas une programmeuse ou un programmeur,
texte de 2014 :
https://superginbaby.wordpress.com/2014/11/18/learning-haskell-as-a-nonprogrammer/
- En 2015, l'auteur de ce texte explique son
amour pour
Haskell :
http://thenewsh.blogspot.ca/2015/04/why-i-love-haskell-example.html
- Selon Chad Austin en 2015,
Haskell
n'est pas vraiment un langage fonctionnel au sens pur du terme :
https://chadaustin.me/2015/09/haskell-is-not-a-purely-functional-language/
Technique
Divers sujets techniques à propos du langage
Haskell.
- Système de types de
Haskell :
../../Liens/Systemes-types--Liens.html#langage_Haskell
- Écrire un
interpréteur Lisp
en
Haskell : http://www.defmacro.org/ramblings/lisp-in-haskell.html
-
Haskell
et les chaînes de caractères :
http://lukeplant.me.uk/blog/posts/haskell-string-support/
-
Haskell et les énoncés comme entités de première classe, texte de Justin
Le en 2014 :
http://blog.jle.im/entry/first-class-statements
- Programmation transactionnelle : http://delivery.acm.org/10.1145/1160000/1159853/p84-thiemann.pdf?key1=1159853&key2=4069357811&coll=&dl=acm&CFID=15151515&CFTOKEN=6184618
- S'échapper de Zurg (un exercice) : http://web.engr.oregonstate.edu/~erwig/papers/Zurg_JFP04.pdf
- Modéliser des éclairs en
Haskell : http://bayern.stanford.edu/~brant/lightning/
- Programmer pour le Web avec
Haskell :
- Les entrées/ sorties avec
Haskell :
- Consommer du XML : http://random.axman6.com/blog/?p=157
- Que faire avec toutes ces bibliothèques? http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/?timely
- La collecte d'ordures
sous
Haskell : http://hackage.haskell.org/trac/ghc/blog/new-gc-preview
- Les énumérateurs : http://docs.yesodweb.com/blog/enumerators-tutorial-part-1/
- Un interpréteur
Haskell en JavaScript :
http://github.com/johang88/haskellinjavascript
- Un interpréteur Lisp en Haskell, par Slava Akhmechet en 2006 :
http://www.defmacro.org/ramblings/lisp-in-haskell.html
- Quantification en
Haskell : http://mainisusuallyafunction.blogspot.com/2010/10/quantification-in-haskell.html
- Les Zippers, pour le parcours d'arbres : http://learnyouahaskell.com/zippers
- Tracer la compilation d'une factorielle, par Edward Z. Yang en
2011 : http://blog.ezyang.com/2011/04/tracing-the-compilation-of-hello-factorial/
- Traitement du langage naturel avec
Haskell, un livre électronique
par Daniël de Kok et Harm Brouwer :
http://nlpwp.org/book/
- Séquences infinies et
Haskell, par Pedro Baltazar Vasconcelos en
2012 :
http://ycombinator.blogspot.pt/2012/08/why-haskell-is-not-lazy-language.html
- Des chics trucs :
-
Haskell et les générateurs, par Oleg Kiselyov,
Simon
Peyton-Jones et Amr Sabry en 2012 :
http://okmij.org/ftp/continuations/PPYield/index.html
- Intégrer des interfaces dans
Haskell, un texte de
Scott Kilpatrick, Derek Dreyer,
Simon
Peyton-Jones et Simon Marlow en
2014 :
http://plv.mpi-sws.org/backpack/
- Les règles de substitution utilisées de manière pratique, par Gabriel
Gonzalez en 2014 :
http://www.haskellforall.com/2014/01/stream-fusion-for-pipes.html
- Écrire une boucle principale pour un moteur de jeu avec
Haskell, par Matt
Gallivan en 2014 :
http://www.thesoftwaredevelopmentlifecycle.com/?p=89
- Manipuler des unités de mesure avec
Haskell, par João Cristóvão en
2014 :
http://fundeps.com/posts/haskell/2014-05-24-An-Experiment-with-Typed-Time/index.html
- Représenter des états mutables (en fait, des références mutables) avec
Haskell, par Jakub Arnold en 2014 :
http://blog.jakubarnold.cz/2014/07/20/mutable-state-in-haskell.html
-
Haskell
et les chaînes de caractères, par Alexey Shmalko en 2015 :
http://www.alexeyshmalko.com/2015/haskell-string-types/
-
Comprendre les types du langage
Haskell,
une présentation de Takenobu T. :
http://takenobu-hs.github.io/downloads/type_introduction_illustrated.pdf
-
Haskell
et les foncteurs : Foncteurs.html
-
Utiliser
Haskell
sur la
JVM, par Mathieu Boespflug et Alp Mestanogullari en 2016 :
http://blog.tweag.io/posts/2016-10-17-inline-java.html
Cas d'espèces
Le langage
Haskell
incarné dans sa pratique.
Critiques
Nul n'est parfait.