Хороший исходник на Хаскеле для чтения и изучения [закрыт]

347

Каковы некоторые программы с открытым исходным кодом, которые используют Haskell и можно считать хорошим качеством современного Haskell ? Чем больше база кода, тем лучше.

Я хочу учиться на их исходном коде. Я чувствую, что прошел точку изучения небольших примеров кода, которые часто бывают эзотерическими и маленькими. Я хочу посмотреть, как структурирован код, как взаимодействуют монады, когда у вас много чего происходит (ведение журнала, ввод-вывод, конфигурация и т. Д.).

luispedro
источник
9
Несмотря на то, что этот вопрос закрыт, пользователи могут редактировать «принятый» ответ и добавлять к нему свой ответ.
Джордж Стокер

Ответы:

276

Что я рекомендую.

Читайте код людей из разных аспирантур в 1990-х

Прочитайте код старых мастеров определенных людей (неполный список)

Обратите внимание, что такие люди, как я, Куттс, Митчелл, О'Салливан, Лайна и др., Изучили наш стиль Haskell у этих парней.

Прочитайте некоторые приложения

Дон Стюарт
источник
98
Это типично для Хаскелла. С php вы читаете привет мир и начинаете писать плохие сайты. В haskell нет верхней границы того, что вы можете выучить, всегда есть более интересные дополнения и статьи. И только сейчас я узнал, что в университетах разные стили, и поэтому я должен проверить все это ... Когда у меня есть время для написания собственных проектов на haskell? :)
Tarrasch
39
Каковы краткие характеристики различных стилей?
grautur
17
@grautur: И, что более важно, почему они разные? Были ли веские технические причины?
Роберт Массайоли
10
На мой взгляд, разные стили являются результатом географического разделения (а иногда и философских разногласий) разных школ в эпоху до вики / интернета; и наследие прото-хаскельских языков в каждой школе, влияющих на стиль. С появлением Hackage, wikis и github в настоящее время в значительной степени появился гомогенный стиль Haskell (основанный на использовании Glasgow и GHC).
Дон Стюарт
15
В CMU я изучил денотационную семантику и вывод программ (систематическое преобразование спецификаций в реализации), которые оказали глубокое влияние на мой подход к программированию. Вы будете регулярно видеть эти две темы в моем блоге . Когда я работаю с библиотекой программного обеспечения, я выбираю небольшое количество типов и начинаю с центрального вопроса: «Что это значит?». Когда я вижу низкоуровневый код, например, imperative / IO, я спрашиваю: «Какая денотативная абстракция является реализацией этого кода и как эта реализация может быть получена из абстракции?»
Конал
61

XMonad - это оконный менеджер с открытым исходным кодом, изначально смоделированный на dwm . Существует множество расширений различного качества, но ядро компактно и хорошо организовано.

geekosaur
источник
37
Ядро, fwiw, также чрезвычайно тщательно спроектировано. Ядро ядра, StackSet, было проверено (то есть сохраняются свойства QC) в программе проверки теорем Кок. Это пример патологического проектирования ухода.
Дон Стюарт
7
@don: «патологический» как в «хорошем», нет? :)
Франческо
8
Да :-) Спенсер и я уделяем больше внимания созданию ядра xmonad, чем любой другой проект, в котором я принимал участие.
Дон Стюарт,
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

    Б. О'Салливан, Дж. Гёрзен, Д. Стюарт | O'Reilly Media, Inc. Опубликовано в 2008 году, 710 страниц

  4. The Haskell Road to Logic, Maths and Programming

    Кеес Доетс, Ян ван Эйк | Публикации колледжа Опубликовано в 2004 году, 449 страниц

Soner Gönül
источник
6
Это книги, а не исходные файлы реального проекта.
SES
17

Darcs - это система управления исходным кодом с открытым исходным кодом. Это должно дать вам хорошую идею для Haskell.

Adithya Surampudi
источник
16
Поработав над Дарксом, я бы не стал рекомендовать его исходный код. Он не использует то, что я считаю хорошими стилями Haskell. Я думаю, если вам любопытно, что происходит, когда небольшие кодовые базы увеличиваются при органическом росте, это хороший пример. Если вы хотите увидеть программу с последовательным стилем письма или четкими целями дизайна, я бы посмотрел в другом месте.
Джейсон Дагит
8

Исходный код веб-платформы Yesod довольно сложен, хорошо продуман и хорошо написан. Вы также многому научитесь из постоянной библиотеки, которая поставляется вместе с ней.

MattoxBeckman
источник
5

GHC, вероятно, самый большой или один из самых больших проектов, написанных на Haskell, с открытым исходным кодом. Когда я говорю «большой», я имею в виду не только размер источника, но также влияние, использование, инновации, надежность. GHC может научить вас много о написании Haskell.

danharaj
источник