Nguồn Haskell tốt để đọc và học hỏi từ [đóng]


347

Một số chương trình nguồn mở sử dụng Haskell là gì và có thể được coi là Haskell hiện đại có chất lượng tốt ? Cơ sở mã càng lớn thì càng tốt.

Tôi muốn học từ mã nguồn của họ. Tôi cảm thấy tôi đã vượt qua điểm học hỏi từ các ví dụ mã nhỏ, thường là bí truyền và thế giới nhỏ. Tôi muốn xem cách mã được cấu trúc, cách các đơn vị tương tác khi bạn có nhiều thứ đang diễn ra (ghi nhật ký, I / O, cấu hình, v.v.).


9
Mặc dù câu hỏi này đã bị đóng, người dùng vẫn có thể chỉnh sửa câu trả lời 'được chấp nhận' và thêm câu trả lời của họ cho câu hỏi đó.
George Stocker

Câu trả lời:


276

Những gì tôi đề nghị.

Đọc mã của những người từ các trường khác nhau trong những năm 1990

Đọc mã bởi những người chủ cũ nhất định (danh sách không đầy đủ)

Lưu ý rằng những người như tôi, Coutts, Mitchell, O'Sullivan, Lynagh, v.v ... đã học được phong cách Haskell của chúng tôi từ những người này.

Đọc một số ứng dụng


98
Đây là điển hình haskell damit. Với php bạn đọc một thế giới xin chào và tiếp tục viết các trang web nghèo nàn. Với haskell, không có giới hạn trên về những gì bạn có thể học, luôn có nhiều phần mở rộng và giấy tờ thú vị sắp xuất hiện. Và bây giờ tôi mới biết rằng các trường đại học có phong cách khác nhau, và do đó tôi phải kiểm tra tất cả những điều đó ... Khi nào tôi có thời gian để thực sự viết các dự án haskell của riêng mình? :)
Tarrasch

39
Tóm lại, những đặc điểm của các phong cách khác nhau là gì?
grautur

17
@grautur: Và, quan trọng hơn, tại sao chúng lại khác nhau? Có lý do kỹ thuật tốt?
Robert Massaioli

10
Theo quan điểm của tôi, các phong cách khác nhau là kết quả của sự tách biệt về địa lý (và đôi khi là những bất đồng về triết học) của các trường khác nhau trong thời đại tiền wiki / internet; và di sản của các ngôn ngữ proto-Haskell ở mỗi trường ảnh hưởng đến phong cách. Với sự xuất hiện của Hackage, wiki và github, giờ đây phần lớn là phong cách Haskell đồng nhất (dựa trên việc sử dụng của Glasgow và GHC).
Don Stewart

15
Tại CMU, tôi đã học được ngữ nghĩa học và dẫn xuất chương trình (chuyển đổi hệ thống các thông số kỹ thuật sang triển khai), cả hai đều có tác động sâu sắc đến cách tiếp cận lập trình của tôi. Bạn sẽ thấy hai chủ đề này thường xuyên trên blog của tôi . Khi tôi làm việc trên một thư viện phần mềm, tôi chọn một số loại nhỏ và bắt đầu với một câu hỏi chính: "Nó có nghĩa là gì?". Khi tôi thấy mã cấp thấp, ví dụ: mệnh lệnh / IO, tôi hỏi "Về việc trừu tượng hóa mã này là gì khi triển khai và cách triển khai đó có thể bắt nguồn từ sự trừu tượng hóa?"
Conal

61

XMonad là một trình quản lý cửa sổ ốp lát mã nguồn mở, ban đầu được mô hình hóa lỏng lẻo trên dwm . Có rất nhiều phần mở rộng, chất lượng khác nhau, nhưng cốt lõi là nhỏ gọn và được tổ chức tốt.


36
Cốt lõi, fwiw, cũng được thiết kế cực kỳ cẩn thận. Cốt lõi của lõi, Stackset, đã được xác minh (đó là thuộc tính QC giữ) trong câu tục ngữ định lý Coq. Đó là một ví dụ về chăm sóc thiết kế bệnh lý.
Don Stewart

6
@don: "bệnh lý" như trong "tốt", không? :)
Francesco

8
Có :-) Spencer và tôi quan tâm nhiều hơn đến việc chế tạo lõi xmonad hơn bất kỳ dự án nào tôi từng tham gia.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen, et al. | Wikibooks Xuất bản năm 2007, 290 trang

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca | LearnYouaHaskell.com Xuất bản năm 2010, 176 trang

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. Xuất bản năm 2008, 710 trang

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | Ấn phẩm đại học Xuất bản năm 2004, 449 trang


6
Đây là những cuốn sách, không phải tập tin nguồn của dự án thực sự.
vừng

17

Anh hùng là một hệ thống quản lý mã nguồn mở. Nó sẽ cung cấp cho bạn một ý tưởng tốt đẹp cho Haskell.


16
Đã làm việc trên darcs một chút công bằng, tôi thực sự sẽ không đề xuất mã nguồn của nó. Nó không sử dụng những gì tôi sẽ xem xét phong cách Haskell tốt. Tôi đoán nếu bạn tò mò điều gì xảy ra khi các cơ sở mã nhỏ phát triển lớn trong khi phát triển hữu cơ thì đó là một ví dụ tốt. Nếu bạn muốn xem một chương trình có phong cách viết phù hợp hoặc mục tiêu thiết kế rõ ràng, tôi sẽ tìm nơi khác.
Jason Dagit



5

GHC có lẽ là dự án lớn nhất hoặc là một trong những dự án lớn nhất được viết bằng Haskell là nguồn mở. Khi tôi nói lớn nhất, tôi không chỉ có ý nghĩa về kích thước nguồn, mà còn tác động, sử dụng, đổi mới, mạnh mẽ. GHC có thể dạy bạn rất nhiều về cách viết Haskell.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.