[Kapalı] 'dan okumak ve öğrenmek için iyi Haskell kaynağı


347

Haskell kullanan ve kaliteli modern Haskell olarak kabul edilebilecek bazı açık kaynaklı programlar nelerdir? Kod tabanı ne kadar büyük olursa o kadar iyidir.

Kaynak kodlarından öğrenmek istiyorum. Genellikle ezoterik ve küçük dünyaya yönelik küçük kod örneklerinden öğrenmenin noktasını geçtiğimi hissediyorum. Kodun nasıl yapılandırıldığını, çok şey olduğunda (günlük kaydı, G / Ç, yapılandırma vb.) Monad'ların nasıl etkileştiğini görmek istiyorum.


9
Bu soru kapalı olmasına rağmen, kullanıcılar yine de 'kabul edilen' yanıtı düzenleyebilir ve cevaplarını ekleyebilirler.
George Stocker

Yanıtlar:


276

Ne tavsiye ederim.

1990'larda farklı yüksekokullardan insanların kodlarını okuyun

Bazı insanlar eski ustaların kodunu okuyun (eksik liste)

Benim gibi insanların, Coutts, Mitchell, O'Sullivan, Lynagh, vb. Haskell tarzımızı bu adamlardan öğrendiğini unutmayın.

Bazı uygulamaları okuyun


98
Bu tipik haskell damit'tir. Php ile merhaba bir dünya okumak ve doğrudan kötü web siteleri yazmaya devam. Haskell ile ne öğrenebileceğiniz konusunda bir üst sınır yoktur, her zaman daha ilginç uzantılar ve makaleler ortaya çıkar. Ve şimdi üniversitelerin farklı stilleri olduğunu öğrendim ve bunun için hepsini kontrol etmeliyim ... Kendi haskell projelerini yazmak için ne zaman vaktim var? :)
Tarrasch

39
Kısaca, farklı stillerin özellikleri nelerdir?
grautur

17
@grautur: Ve daha da önemlisi, neden farklılar? İyi teknik nedenler var mıydı?
Robert Massaioli

10
Bana göre, farklı stiller, wiki öncesi / internet çağındaki farklı okulların coğrafi olarak ayrılmasının (ve bazen felsefi anlaşmazlıkların) sonucudur; ve her bir okulda stili etkileyen proto-Haskell dillerinin mirası. Hackage, wikis ve github'un ortaya çıkmasıyla birlikte artık büyük ölçüde homojen bir Haskell stili var (Glasgow ve GHC kullanımına dayalı).
Don Stewart

15
CMU'da, her ikisi de programlama yaklaşımım üzerinde derin bir etkiye sahip olan anlamsal anlambilim ve program türetmeyi (spesifikasyonların uygulamalara sistematik dönüşümü) öğrendim. Üzerinde düzenli olarak bu iki temaları göreceksiniz bloguma . Bir yazılım kütüphanesinde çalıştığımda, az sayıda tür seçiyorum ve merkezi bir soru ile başlıyorum: "Bu ne anlama geliyor?". Düşük düzeyli bir kod gördüğümde, örneğin, zorunlu / IO, "Bu kod ne denli soyutlamanın bir uygulamasıdır ve bu uygulama soyutlamadan nasıl türetilebilir?"
Conal

61

Xmonad aslen gevşek örnek alınarak, açık kaynak fayans pencere yöneticisidir DWM . Değişen kalitede çok sayıda uzantı var, ancak çekirdek kompakt ve iyi organize edilmiş.


37
Çekirdek, fwiw de son derece dikkatli bir şekilde tasarlanmıştır. Çekirdeğin çekirdeği StackSet, Coq teoremi kanıtlayıcısında doğrulandı (yani QC özelliklerinin tutulduğu). Patolojik tasarım bakımına bir örnektir.
Don Stewart

7
@ don: "iyi" de olduğu gibi "patolojik" değil mi? :)
Francesco

8
Evet :-) Spencer ve ben xmonad çekirdeğinin işçiliğine katıldığım herhangi bir projeden daha fazla özen gösterdik.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen, vd. | Wikibooks 2007 yılında yayınlandı, 290 sayfa

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca | LearnYouaHaskell.com 2010, 176 sayfa yayınlandı

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. 2008 yılında yayınlandı, 710 sayfa

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | Üniversite Yayınları 2004 yılında yayınlandı, 449 sayfa


6
Bunlar gerçek projenin kaynak dosyaları değil kitaplar.
ses

17

Darcs açık kaynaklı, kaynak kodu yönetim sistemidir. Haskell için sana güzel bir fikir vermeli.


16
Darcs üzerinde biraz çalıştıktan sonra, kaynak kodunu gerçekten tavsiye etmem. İyi Haskell stillerini dikkate alacağım şeyi kullanmaz. Organik olarak büyürken küçük kod tabanları büyüdüğünde ne olacağını merak ediyorsanız iyi bir örnek. Tutarlı bir yazma tarzına veya açık tasarım hedeflerine sahip bir program görmek istiyorsanız, başka bir yere bakardım.
Jason Dagit



5

GHC muhtemelen Haskell'de yazılmış ve açık kaynak kodlu en büyük projelerden biridir. En büyük dediğimde, sadece kaynak büyüklüğü açısından değil, aynı zamanda etki, kullanım, yenilik, sağlamlık anlamında da kastediyorum. GHC size Haskell yazma hakkında çok şey öğretebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.