Bonne source Haskell pour lire et apprendre [fermé]

347

Quels sont les programmes open source qui utilisent Haskell et peuvent être considérés comme des Haskell modernes de bonne qualité ? Plus la base de code est grande, mieux c'est.

Je veux apprendre de leur code source. Je sens que j'ai dépassé le point d'apprendre à partir de petits exemples de code, qui sont souvent destinés à l'ésotérisme et au petit monde. Je veux voir comment le code est structuré, comment les monades interagissent lorsque vous avez beaucoup de choses en cours (journalisation, E / S, configuration, etc.).

luispedro
la source
9
Même si cette question a été fermée, les utilisateurs peuvent toujours modifier la réponse «acceptée» et y ajouter leur réponse.
George Stocker

Réponses:

276

Ce que je recommande.

Lire le code par des personnes de différentes écoles supérieures dans les années 1990

Lire le code des anciens maîtres certaines personnes (liste incomplète)

Notez que des gens comme moi, Coutts, Mitchell, O'Sullivan, Lynagh, etc. ont appris notre style Haskell de ces gars.

Lire certaines applications

Don Stewart
la source
98
C'est typique haskell damit. Avec php, vous lisez un bonjour et continuez à écrire des sites Web pauvres. Avec haskell, il n'y a pas de limite supérieure à ce que vous pouvez apprendre, il y a toujours des extensions et des articles plus intéressants à venir. Et tout à l'heure, j'ai appris que les universités ont des styles différents, et je dois donc vérifier toutes celles-ci ... Quand ai-je le temps d'écrire mes propres projets haskell? :)
Tarrasch
39
Quelles sont, brièvement, les caractéristiques des différents styles?
grautur
17
@grautur: Et, plus important encore, pourquoi sont-ils différents? Y avait-il de bonnes raisons techniques?
Robert Massaioli
10
À mon avis, les différents styles sont le résultat de la séparation géographique (et parfois des désaccords philosophiques) des différentes écoles à l'époque pré-wiki / Internet; et l'héritage des langues proto-Haskell dans chaque école influençant le style. Avec l'émergence du Hackage, des wikis et du github, il existe désormais un style Haskell largement homogène (basé sur l'utilisation de Glasgow et du GHC).
Don Stewart
15
À la CMU, j'ai appris la sémantique dénotationnelle et la dérivation de programme (transformation systématique des spécifications en implémentations), qui ont toutes deux eu un impact profond sur mon approche de la programmation. Vous verrez ces deux thèmes régulièrement sur mon blog . Lorsque je travaille sur une bibliothèque de logiciels, je choisis un petit nombre de types et commence par une question centrale: "Qu'est-ce que cela signifie?". Quand je vois du code de bas niveau, par exemple, impératif / IO, je demande "De quelle abstraction dénotative ce code est-il une implémentation, et comment cette implémentation peut-elle être dérivée de l'abstraction?"
Conal
61

XMonad est un gestionnaire de fenêtres de mosaïque open source, initialement modélisé librement sur dwm . Il existe de nombreuses extensions, de qualité variable, mais le noyau est compact et bien organisé.

geekosaure
la source
36
Le noyau, fwiw, est également extrêmement soigneusement conçu. Le noyau du noyau, StackSet, a été vérifié (c'est-à-dire que les propriétés QC sont conservées) dans le prouveur du théorème Coq. C'est un exemple de soins de conception pathologique.
Don Stewart
6
@don: "pathologique" comme dans "bon", non? :)
Francesco
8
Oui :-) Spencer et moi avons mis plus d'attention à l'élaboration du noyau xmonad que tout projet auquel j'ai participé.
Don Stewart
18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen et al. | Wikibooks Publié en 2007, 290 pages

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca | LearnYouaHaskell.com Publié en 2010, 176 pages

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. Publié en 2008, 710 pages

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | Publications du Collège Publié en 2004, 449 pages

Soner Gönül
la source
6
Ce sont des livres, pas de vrais fichiers source de projet.
ses
17

Darcs est un système de gestion de code source open source. Cela devrait vous donner une bonne idée pour Haskell.

Adithya Surampudi
la source
16
Ayant beaucoup travaillé sur les darcs, je ne recommanderais pas vraiment son code source. Il n'utilise pas ce que je considérerais comme de bons styles Haskell. Je suppose que si vous êtes curieux de savoir ce qui se passe lorsque de petites bases de code grossissent tout en se développant de manière organique, c'est un bon exemple. Si vous voulez voir un programme avec un style d'écriture cohérent ou des objectifs de conception clairs, je chercherais ailleurs.
Jason Dagit
8

Le code source de la plateforme Web Yesod est assez complexe, bien pensé et bien écrit. Vous apprendrez également beaucoup de la bibliothèque de persistance qui l'accompagne.

MattoxBeckman
la source
7

Si vous vous souciez de la programmation Web, je recommanderais le projet lpaste de Chris Done .

Victor Nazarov
la source
Peut-être que ce github.com/lpaste/lambda-paste ?
TobiMcNamobi
5

GHC est probablement le plus grand ou l'un des plus gros projets écrits en Haskell qui soit open source. Quand je dis le plus grand, je ne veux pas seulement dire en termes de taille de source, mais aussi d'impact, d'utilisation, d'innovation, de robustesse. GHC peut vous apprendre beaucoup sur l'écriture de Haskell.

danharaj
la source