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.).
Đâ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? :)
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).
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?"
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.
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ý.
Đã 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.
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.