Sumber Haskell bagus untuk membaca dan belajar dari [ditutup]


347

Apa saja program open source yang menggunakan Haskell dan dapat dianggap berkualitas baik sebagai Haskell modern ? Semakin besar basis kode, semakin baik.

Saya ingin belajar dari kode sumber mereka. Saya merasa saya sudah melewati titik belajar dari contoh kode kecil, yang sering ke dunia esoterik dan kecil. Saya ingin melihat bagaimana kode terstruktur, bagaimana Monads berinteraksi ketika Anda memiliki banyak hal yang terjadi (logging, I / O, konfigurasi, dll.).


9
Meskipun pertanyaan ini telah ditutup, pengguna masih dapat mengedit jawaban 'diterima' dan menambahkan jawaban mereka ke dalamnya.
George Stocker

Jawaban:


276

Apa yang saya rekomendasikan.

Baca kode oleh orang-orang dari sekolah pascasarjana yang berbeda pada 1990-an

Baca kode oleh master lama orang-orang tertentu (daftar tidak lengkap)

Perhatikan bahwa orang-orang seperti saya, Coutts, Mitchell, O'Sullivan, Lynagh, dll. Mempelajari gaya Haskell kami dari orang-orang ini.

Baca beberapa aplikasi


98
Ini khas haskell damit. Dengan php Anda membaca dunia halo dan terus menulis situs web yang buruk. Dengan haskell, tidak ada batas atas pada apa yang dapat Anda pelajari, selalu ada ekstensi dan makalah yang lebih menarik muncul. Dan baru saja saya belajar bahwa universitas memiliki gaya yang berbeda, dan karenanya saya harus memeriksa semua itu ... Kapan saya punya waktu untuk benar-benar menulis proyek haskell saya sendiri? :)
Tarrasch

39
Apa, secara singkat, karakteristik dari gaya yang berbeda?
grautur

17
@ Grutur: Dan, yang lebih penting, mengapa mereka berbeda? Apakah ada alasan teknis yang bagus?
Robert Massaioli

10
Dalam pandangan saya, gaya yang berbeda adalah hasil dari pemisahan geografis (dan kadang-kadang ketidaksepakatan filosofis) dari sekolah yang berbeda di zaman pra-wiki / internet; dan warisan bahasa proto-Haskell di setiap sekolah yang memengaruhi gaya. Dengan munculnya Hackage, wiki dan github sekarang ada sebagian besar gaya Haskell homogen (berdasarkan Glasgow dan penggunaan GHC).
Don Stewart

15
Di CMU, saya belajar semantik denasional dan derivasi program (transformasi sistematis dari spesifikasi ke implementasi), yang keduanya memiliki dampak mendalam pada pendekatan saya untuk pemrograman. Anda akan melihat dua tema ini secara teratur di blog saya . Ketika saya bekerja di perpustakaan perangkat lunak, saya memilih sejumlah kecil jenis dan mulai dengan pertanyaan sentral: "Apa artinya?". Ketika saya melihat kode tingkat rendah, misalnya, imperatif / IO, saya bertanya "Dari abstraksi denotatif apa kode ini merupakan implementasi, dan bagaimana implementasi itu dapat berasal dari abstraksi?"
Conal

61

XMonad adalah open source tiling window manager, awalnya dibuat dengan model dwm . Ada banyak ekstensi, kualitas bervariasi, tetapi intinya kompak dan terorganisir dengan baik.


36
Inti, fwiw, juga direkayasa dengan sangat hati-hati. Inti dari inti, StackSet, telah diverifikasi (yaitu sifat properti QC) dalam teorema Coq. Ini adalah contoh perawatan desain patologis.
Don Stewart

6
@don: "patologis" seperti dalam "baik", bukan? :)
Francesco

8
Ya :-) Spencer dan saya menaruh perhatian lebih besar pada kerajinan inti xmonad daripada proyek apa pun yang pernah saya ikuti.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen, et al. | Wikibooks Diterbitkan pada 2007, 290 halaman

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca | LearnYouaHaskell.com Diterbitkan pada tahun 2010, 176 halaman

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. Diterbitkan pada tahun 2008, 710 halaman

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | College Publications Diterbitkan pada tahun 2004, 449 halaman


6
Ini adalah buku, bukan file sumber proyek nyata.
ses

17

Darcs adalah open source, sistem manajemen kode sumber. Seharusnya memberi Anda ide bagus untuk Haskell.


16
Setelah bekerja pada darcs sedikit adil, saya tidak akan merekomendasikan kode sumbernya. Itu tidak menggunakan apa yang saya anggap gaya Haskell baik. Saya kira jika Anda ingin tahu apa yang terjadi ketika basis kode kecil menjadi besar saat tumbuh secara organik maka itu adalah contoh yang baik. Jika Anda ingin melihat program dengan gaya penulisan yang konsisten atau tujuan desain yang jelas saya akan mencari di tempat lain.
Jason Dagit



5

GHC mungkin adalah yang terbesar atau salah satu proyek terbesar yang ditulis dalam Haskell yang bersifat open source. Ketika saya mengatakan terbesar, saya tidak hanya bermaksud dalam hal ukuran sumber, tetapi juga dampak, penggunaan, inovasi, ketahanan. GHC dapat mengajarkan Anda banyak hal tentang menulis Haskell.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.