Gute Haskell-Quelle zum Lesen und Lernen von [geschlossen]

347

Was sind einige Open-Source-Programme, die Haskell verwenden und als moderne Haskell von guter Qualität angesehen werden können ? Je größer die Codebasis, desto besser.

Ich möchte aus ihrem Quellcode lernen. Ich habe das Gefühl, dass ich nicht mehr aus kleinen Codebeispielen lernen kann, die oft zu esoterisch und klein sind. Ich möchte sehen, wie Code strukturiert ist, wie Monaden interagieren, wenn viele Dinge vor sich gehen (Protokollierung, E / A, Konfiguration usw.).

luispedro
quelle
9
Obwohl diese Frage geschlossen wurde, können Benutzer die "akzeptierte" Antwort bearbeiten und ihre Antwort hinzufügen.
George Stocker

Antworten:

276

Was ich empfehle.

Lesen Sie den Code von Menschen aus verschiedenen Graduiertenschulen in den 1990er Jahren

Lesen Sie den Code der alten Meister bestimmter Personen (unvollständige Liste)

Beachten Sie, dass Leute wie ich, Coutts, Mitchell, O'Sullivan, Lynagh usw. von diesen Leuten unseren Haskell-Stil gelernt haben.

Lesen Sie einige Anwendungen

Don Stewart
quelle
98
Dies ist typisch haskell damit. Mit PHP lesen Sie eine Hallo-Welt und schreiben direkt schlechte Websites. Mit haskell gibt es keine Obergrenze für das, was Sie lernen können. Es stehen immer interessantere Erweiterungen und Artikel an. Und gerade habe ich gelernt, dass Universitäten unterschiedliche Stile haben, und deshalb muss ich mir all diese ansehen ... Wann habe ich Zeit, eigene Haskell-Projekte zu schreiben? :)
Tarrasch
39
Was sind kurz die Merkmale der verschiedenen Stile?
Grautur
17
@grautur: Und was noch wichtiger ist, warum unterscheiden sie sich? Gab es gute technische Gründe?
Robert Massaioli
10
Meiner Ansicht nach sind die verschiedenen Stile das Ergebnis der geografischen Trennung (und manchmal auch philosophischer Meinungsverschiedenheiten) der verschiedenen Schulen im Zeitalter vor dem Wiki / Internet. und das Erbe der Proto-Haskell-Sprachen an jeder Schule, die den Stil beeinflussen. Mit dem Aufkommen von Hackage, Wikis und Github gibt es jetzt weitgehend einen homogenen Haskell-Stil (basierend auf der Verwendung von Glasgow und GHC).
Don Stewart
15
An der CMU lernte ich die Denotationssemantik und die Programmableitung (systematische Umwandlung von Spezifikationen in Implementierungen), die beide einen tiefgreifenden Einfluss auf meinen Programmieransatz hatten. Sie werden diese beiden Themen regelmäßig in meinem Blog sehen . Wenn ich an einer Softwarebibliothek arbeite, wähle ich eine kleine Anzahl von Typen aus und beginne mit einer zentralen Frage: "Was bedeutet das?". Wenn ich Code auf niedriger Ebene sehe, z. B. imperative / IO, frage ich: "Von welcher denotativen Abstraktion ist dieser Code eine Implementierung, und wie könnte diese Implementierung aus der Abstraktion abgeleitet werden?"
Conal
61

XMonad ist ein Open-Source- Kachelfenstermanager , der ursprünglich lose an dwm angelehnt war . Es gibt viele Erweiterungen unterschiedlicher Qualität, aber der Kern ist kompakt und gut organisiert.

Geekosaurier
quelle
36
Der Kern, fwiw, ist ebenfalls äußerst sorgfältig konstruiert. Der Kern des Kerns, StackSet, wurde im Coq-Theorem-Prover verifiziert (dh die QC-Eigenschaften gelten). Es ist ein Beispiel für pathologische Designpflege.
Don Stewart
6
@don: "pathologisch" wie in "gut", nein? :)
Francesco
8
Ja :-) Spencer und ich haben mehr Sorgfalt in die Herstellung des Xmonad-Kerns gesteckt als in jedes andere Projekt, an dem ich beteiligt war.
Don Stewart
18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen et al. | Wikibooks Veröffentlicht 2007, 290 Seiten

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca | LearnYouaHaskell.com Veröffentlicht im Jahr 2010, 176 Seiten

  3. Real World Haskell

    B. O'Sullivan, J. Görzen, D. Stewart | O'Reilly Media, Inc. Veröffentlicht 2008, 710 Seiten

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | College Publications Veröffentlicht im Jahr 2004, 449 Seiten

Soner Gönül
quelle
6
Dies sind Bücher, keine echten Projektquelldateien.
ses
17

Darcs ist ein Open Source-Quellcodeverwaltungssystem. Es sollte Ihnen eine schöne Idee für Haskell geben.

Adithya Surampudi
quelle
16
Nachdem ich ein bisschen an Darcs gearbeitet habe, würde ich den Quellcode nicht wirklich empfehlen. Es wird nicht das verwendet, was ich für gute Haskell-Stile halten würde. Ich denke, wenn Sie neugierig sind, was passiert, wenn kleine Codebasen beim organischen Wachstum groß werden, dann ist dies ein gutes Beispiel. Wenn Sie ein Programm mit einem einheitlichen Schreibstil oder klaren Designzielen sehen möchten, würde ich woanders suchen.
Jason Dagit
8

Der Quellcode der Yesod Web Platform ist ziemlich komplex, gut durchdacht und gut geschrieben. Sie werden viel aus der mitgelieferten Persistenzbibliothek lernen.

MattoxBeckman
quelle
5

GHC ist wahrscheinlich das größte oder eines der größten Open Source-Projekte in Haskell. Wenn ich "am größten" sage, meine ich nicht nur die Quellgröße, sondern auch die Auswirkungen, die Verwendung, die Innovation und die Robustheit. GHC kann Ihnen viel über das Schreiben von Haskell beibringen.

danharaj
quelle