Je cherche un livre qui explique la programmation fonctionnelle de manière accessible. Je préférerais aussi un qui n'est pas trop ennuyeux et n'utilise pas un langage ésotérique.
Idéalement, il utilisera des exemples qui illustrent des situations où la programmation fonctionnelle conduit à des solutions plus élégantes ou plus simples que les approches impératives.
J'ai une expérience raisonnable en programmation, mais aucune connaissance en programmation fonctionnelle. Merci pour toutes suggestions
books
functional-programming
Antonio2011a
la source
la source
Réponses:
Je suggérerais de commencer par " The Little Schemer " (et peut-être " The Reasoned Schemer " après cela).
Si vous pensez que Scheme est trop ésotérique, ou si vous aimez Javascript, Douglas Crockford a traduit de nombreux exercices en Javascript: http://javascript.crockford.com/little.html
Si vous aimez C #, la " Programmation fonctionnelle du monde réel " de Tomas Petricek serait un excellent point de départ. Il sert également d'introduction agréable à F #.
la source
Si vous aimez les langages typés statiquement et les [parenthèses]:
Haskell, bien qu'il soit plutôt lourd sur la pureté du paradigme de programmation, a l'une des meilleures introductions à un langage que j'ai encore vu sous la forme de "Learn You a Haskell For Great Good!". La forme du livre est facultative car le site Web est gratuit, mais c'est un auteur qui ne m'a pas du tout déçu. Le monde réel Haskell est bon, mais il vaut mieux le prendre comme suivi de [Learn..Good]. RWH est également gratuit avec une qualité papier facultative.
Depuis Haskell, vous pouvez facilement passer à d'autres variantes ML comme F # ou OCaml, les deux étant plus largement utilisées. Pour l' ATS de pointe .
Si vous aimez (et les parenthèses Dynamic_Typing):
Le schéma est le plus orienté fonctionnellement des deux principaux dialectes Lisp, plus petit et plus pur que Common Lisp mais moins largement utilisé dans l'industrie. Personnellement, j'aime la structure et l'interprétation des programmes informatiques, mais c'est un livre assez théorique, qui, bien qu'un peu difficile à avaler, fera de vous un meilleur programmeur.
Si vous préférez Common Lisp, Common Lisp pratique ou Land of Lisp semblent être de bons investissements, le premier est gratuit en ligne et le second est assez bon marché et plus important (pour certains) axé sur le jeu. Il est plus puissant mais moins pur que Scheme.
À partir de ceux-ci, vous pouvez vous développer dans Clojure si vous le souhaitez. Il s'agit de Lisp pour la JVM, il est donc plus facile à déployer et mieux à même de se défendre contre les accusations d'être "académique". Clojure peut se déployer sur .NET et passer également à Javascript. Pour .NET natif, essayez IronScheme .
Vous pouvez également partager la différence et apprendre les deux à la fois avec Write Yourself a Scheme en 48 heures à Haskell.
la source
Ma source préférée est la Gentle Introduction to Haskell . J'ai lu une partie de Learn you a Haskell and the O'Reilly Real-World Haskell and Simon Thompson's Craft of Functional Programming , mais honnêtement, je fais mieux avec la douce intro. C'est un peu comme K&R de Haskell: un document mince produit par les créateurs de la langue. Pas verbeux, pas condescendant, mais n'essayant pas non plus de vous submerger par leur érudition.
la source
http://hop.perl.plover.com/ comprend un livre que vous pouvez télécharger gratuitement. Il explique comment utiliser de nombreuses techniques fonctionnelles en Perl.
La plupart de ce qu'il dit peut très facilement être traduit en JavaScript, Ruby ou Python.
la source
J'apprends actuellement la programmation fonctionnelle moi-même. Cependant, j'apprends en utilisant Haskell.
Voici quelques livres en ligne (vous pouvez également les acheter en couverture rigide iirc)
Haskell n'est pas estéroïque et devient plus courant (peut-être pas aussi courant que LISP ou Erlang). Cependant, il s'agit d'un langage fonctionnel pur et vous obligera à apprendre le paradigme de programmation fonctionnelle. Par opposition à une approche moitié impérative moitié fonctionnelle que vous obtiendrez en utilisant un langage non purement fonctionnel.
Les gens ont développé des serveurs Web, des clients Bittorrent et quelques applications du monde réel en utilisant haskell. Cependant, je l'utilise personnellement pour apprendre les concepts et l'appliquer ensuite à C # & F # qui fonctionne jusqu'à présent de manière fantastique.
Prendre plaisir.
la source
J'ai entendu plusieurs fois de bonnes choses sur "Structure et interprétation des programmes informatiques". C'est un vrai livre, donc vous voudrez peut-être aussi le faire en papier, voir http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 .
Il est disponible gratuitement ici http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) et il y a même des vidéos des conférences ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )
la source
Programmation à Haskell
Vous pourriez ne pas décider de l'acheter, mais la page d'accueil du livre (voir ci-dessus) propose des liens vers 13 vidéos de la chaîne 9 sur la programmation Haskell.
la source