[폐쇄]에서 읽고 배울 수있는 좋은 Haskell 소스


347

하스켈을 사용하고 좋은 품질의 현대 하스켈 로 간주 될 수있는 일부 오픈 소스 프로그램은 무엇입니까 ? 코드베이스가 클수록 좋습니다.

소스 코드에서 배우고 싶습니다. 나는 종종 난해하고 작은 세계의 작은 코드 예제에서 배우는 시점을 지나고 있다고 생각합니다. 코드가 어떻게 구성되는지, 모나드가 많은 일을 할 때 (로깅, I / O, 구성 등) 모나드가 어떻게 상호 작용하는지 알고 싶습니다.


9
이 질문이 종료되었지만 사용자는 여전히 '허용 된'답변을 편집하여 답변을 추가 할 수 있습니다.
George Stocker

답변:


276

내가 추천하는 것.

1990 년대 다른 대학원 학생들의 코드 읽기

옛 주인이 특정 사람들 코드를 읽습니다 (불완전한 목록)

나와 같은 사람들, Coutts, Mitchell, O'Sullivan, Lynagh 등은이 사람들로부터 Haskell 스타일을 배웠습니다.

일부 응용 프로그램 읽기


98
이것은 전형적인 하스켈 데이 밋입니다. PHP를 사용하면 Hello World를 읽고 열악한 웹 사이트 작성을 계속할 수 있습니다. haskell을 사용하면 배울 수있는 것에 대한 상한이 없으며 항상 더 흥미로운 확장 프로그램과 논문이 나옵니다. 그리고 지금 막 나는 대학들이 다른 스타일을 가지고 있다는 것을 배웠고, 따라서 모든 것을 체크 아웃해야합니다 ... 실제로 내 자신의 haskell 프로젝트를 작성할 시간은 언제입니까? :)
Tarrasch

39
다른 스타일의 특징은 간단히 무엇입니까?
grautur

17
@ grautur : 그리고 더 중요한 것은 왜 다른가? 좋은 기술적 이유가 있었습니까?
Robert Massaioli

10
제 생각에, 다른 스타일은 프리 위키 / 인터넷 시대에 다른 학교들과 지리적으로 분리되어 있고 때로는 철학적 의견이 맞지 않은 결과입니다. 그리고 각 학교에서 스타일에 영향을 미치는 프로토-하스켈 언어의 유산. 해커 지 (Hageage), 위키 (wiki) 및 깃 허브 (github)가 등장하면서 글래스고 (Glasgow)와 GHC 사용을 기반으로하는 균질 한 하스켈 스타일이 생겼습니다.
돈 스튜어트

15
CMU에서 저는 프로그래밍에 대한 접근 방식에 중대한 영향을 미쳤던, 의미 론적 의미론과 프로그램 도출 (사양을 구현으로 체계적으로 변환)을 배웠습니다. 내 블로그 에서이 두 테마를 정기적으로 볼 수 있습니다. 소프트웨어 라이브러리에서 작업 할 때 소수의 유형을 선택하고 "무엇을 의미합니까?"라는 중심 질문으로 시작합니다. 예를 들어, imperative /와 같은 저수준 코드를 볼 때 IO"이 코드는 구현에 대한 추상적 추상화는 무엇이며 구현은 추상화에서 어떻게 도출 될 수 있습니까?"라고 묻습니다.
Conal

61

XMonad 는 오픈 소스 타일링 윈도우 관리자로 원래 dwm에서 느슨하게 모델링되었습니다 . 다양한 품질의 확장 기능이 많이 있지만 핵심 은 작고 잘 정리되어 있습니다.


37
코어, fwiw도 매우 신중하게 설계되었습니다. Coq 정리 증명에서 코어의 핵심 인 StackSet이 확인되었습니다 (즉, QC 속성 보유). 병리학적인 디자인 관리의 예입니다.
Don Stewart

7
@ 돈 : "좋은"에서와 같이 "병리학", 아니? :)
Francesco

8
예 :-) Spencer와 저는 제가 참여한 어떤 프로젝트보다 xmonad 코어 제작에 더 많은주의를 기울였습니다.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen, et al. | Wikibooks 2007 년 출판 290 페이지

  2. Learn You a Haskell for Great Good!

    미란 리포 바카 | LearnYouaHaskell.com 2010 년에 출판, 176 페이지

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. 2008 년 출판, 710 페이지

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, 얀 반 아이크 | 대학 간행물 2004 년 출판 449 페이지


6
실제 프로젝트의 소스 파일이 아닌 책입니다.
ses

17

Darcs 는 오픈 소스, 소스 코드 관리 시스템입니다. Haskell에게 좋은 아이디어가 될 것입니다.


16
darcs에 대해 공정한 작업을 한 후에는 소스 코드를 권장하지 않습니다. 좋은 하스켈 스타일을 고려하지 않습니다. 작은 코드베이스가 유기적으로 성장하면서 커질 때 어떤 일이 발생하는지 궁금하다면 좋은 예입니다. 일관된 작문 스타일이나 명확한 디자인 목표를 가진 프로그램을보고 싶다면 다른 곳을 살펴보십시오.
Jason Dagit

8

Yesod 웹 플랫폼에 대한 소스 코드 는 상당히 복잡하고 잘 작성되었으며 잘 작성되었습니다. 함께 제공되는 지속성 라이브러리에서 많은 것을 배우게됩니다.



5

GHC는 아마도 오픈 소스 인 Haskell로 작성된 가장 큰 프로젝트이거나 가장 큰 프로젝트 중 하나 일 것입니다. 내가 가장 크게 말할 때, 나는 소스 크기의 관점뿐만 아니라 영향, 사용, 혁신, 견고성도 의미합니다. GHC는 Haskell 작성에 관해 많은 것을 가르쳐 줄 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.