755 votes

Mise en route avec Haskell

Pendant quelques jours, j'ai essayé d'envelopper ma tête autour du paradigme de la programmation fonctionnelle en Haskell. Je l'ai fait en lisant des tutoriels et regarder des didacticiels vidéo, mais rien de vraiment l'air de coller. Maintenant, dans l'apprentissage de diverses impératif/OO langages (comme C, Java, PHP), des exercices ont été pour moi une bonne manière d'aller. Mais depuis je ne sais pas vraiment ce que Haskell est capable et parce qu'il y a de nombreux nouveaux concepts à utiliser, je ne connaissais pas par où commencer.

Alors, comment avez-vous apprendre Haskell? Ce qui fait de vous vraiment "briser la glace"? Aussi, toutes les bonnes idées pour commencer des exercices?

177voto

jitter Points 35805

Certains de mes collègues a eu une bonne expérience avec Vous Apprendre un Haskell pour le Grand Bien!.

Tutoriel destiné aux personnes qui ont expérience dans la programmation impérative les langues mais je n'ai pas programmé dans un langage fonctionnel avant.

Et cochez les réponses ici aussi

103voto

David Johnstone Points 10565

Voici un bon livre que vous pouvez lire en ligne: Real World Haskell

La plupart des Haskell programmes que j'ai fait ont été de résoudre Projet Euler problèmes.

Une fois le morceau de conseil que j'ai lu il y a pas longtemps, c'est que vous devriez avoir un ensemble standard de problèmes simples vous savez comment le résoudre (en théorie) et puis à chaque fois que vous essayez d'apprendre une nouvelle langue, vous mettez en œuvre ces problèmes dans cette langue.

73voto

eevar Points 1005

J'ai bien aimé regarder cette épisode 13 de la série sur la Programmation Fonctionnelle à l'aide de Haskell.

C9 Conférences: Dr Erik Meijer - Programmation Fonctionnelle Fondamentaux: http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/

69voto

yairchu Points 9694

Pour ajouter sur les réponses des autres - il y en a un utiles qui vous aideront lors de codage (par exemple lors de la résolution du projet Euler problèmes): Hoogle. Vous pouvez utiliser l'interface de ligne de commande ou l' interface web.

Ligne De Commande

Après avoir installé la plateforme Haskell assurez-vous d' cabal install hoogle

Hoogle exemple d'utilisation:

Vous avez une fonction f x = 3 * x + 1 et que vous voulez l'appliquer sur (5 :: Int), puis l'appliquer sur le résultat et sur ce résultat et ainsi de suite et obtenir une liste infinie de ces valeurs. Vous croyez que l'on peut déjà exister une fonction pour vous aider (pas spécialement pour votre f tout de même).

Cette fonction serait de type (a -> a) -> a -> [a] si on prend en f 5 ou a -> (a -> a) -> [a] si on prend en 5 f (on suppose que la fonction est pour les types généraux et pas seulement Ints)

$ hoogle "a -> (a -> a) -> [a]"
Prelude iterate :: (a -> a) -> a -> [a]

yep, la fonction dont vous avez besoin existe déjà et ça s'appelle iterate. vous l'utilisez en iterate func 5!

Interface Web

Le résultat pour le même exemple peut être trouvé ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X