Boa fonte Haskell para ler e aprender [fechado]


347

Quais são alguns programas de código aberto que usam Haskell e que podem ser considerados Haskell modernos de boa qualidade ? Quanto maior a base de código, melhor.

Eu quero aprender com o código fonte deles. Sinto que já passei do ponto de aprender com pequenos exemplos de código, que costumam ser esotéricos e de mundo pequeno. Quero ver como o código é estruturado, como as mônadas interagem quando você tem muitas coisas acontecendo (registro, E / S, configuração etc.).


9
Mesmo que essa pergunta tenha sido encerrada, os usuários ainda podem editar a resposta 'aceita' e adicionar sua resposta.
George Stocker 04/02

Respostas:


276

O que eu recomendo.

Leia o código de pessoas de diferentes escolas de pós-graduação nos anos 90

Leia o código dos antigos mestres de certas pessoas (lista incompleta)

Note que pessoas como eu, Coutts, Mitchell, O'Sullivan, Lynagh, etc. aprenderam nosso estilo Haskell com esses caras.

Leia algumas aplicações


98
Isso é típico haskell damit. Com o php, você lê um olá mundo e continua escrevendo sites ruins. Com o haskell, não há limite superior para o que você pode aprender, sempre há extensões e documentos interessantes. E agora eu aprendi que as universidades têm estilos diferentes e, portanto, devo verificar tudo isso ... Quando tenho tempo para escrever meus próprios projetos de haskell? :)
Tarrasch 18/06

39
Quais são, resumidamente, as características dos diferentes estilos?
grautur

17
@grautur: E, mais importante, por que eles são diferentes? Houve boas razões técnicas?
precisa

10
Na minha opinião, os diferentes estilos são o resultado da separação geográfica (e às vezes de discordâncias filosóficas) das diferentes escolas na era pré-wiki / internet; e o legado das línguas proto-Haskell em cada escola influenciando o estilo. Com o surgimento de Hackage, wikis e github, existe agora um estilo Haskell homogêneo (baseado no uso de Glasgow e GHC).
Don Stewart

15
Na CMU, aprendi semântica denotacional e derivação de programa (transformação sistemática de especificações em implementações), as quais tiveram um impacto profundo na minha abordagem de programação. Você verá esses dois temas regularmente no meu blog . Quando trabalho em uma biblioteca de software, escolho um pequeno número de tipos e começo com uma pergunta central: "O que isso significa?". Quando vejo código de baixo nível, por exemplo, imperativo / IO, pergunto "De que abstração denotativa esse código é uma implementação e como essa implementação pode ser derivada da abstração?"
Conal 22/06

61

O XMonad é um gerenciador de janelas lado a lado de código aberto, originalmente modelado livremente no dwm . Existem muitas extensões, de qualidade variável, mas o núcleo é compacto e bem organizado.


36
O núcleo, fwiw, também é extremamente projetado com cuidado. O núcleo do núcleo, StackSet, foi verificado (ou seja, as propriedades do QC são mantidas) no comprovador do teorema de Coq. É um exemplo de atendimento de desenho patológico.
Don Stewart

6
@don: "patológico" como em "bom", não? :)
Francesco

8
Sim :-) Spencer e eu coloquei mais cuidado na elaboração do núcleo xmonad que qualquer projeto que eu estive envolvido.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen, et al. | Wikibooks Publicado em 2007, 290 páginas

  2. Learn You a Haskell for Great Good!

    Miran Lipovaca LearnYouaHaskell.com Publicado em 2010, 176 páginas

  3. Real World Haskell

    B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. Publicado em 2008, 710 páginas

  4. The Haskell Road to Logic, Maths and Programming

    Jan Kees Doets, Jan van Eijck | Publicações de faculdade Publicado em 2004, 449 páginas


6
Estes são livros, não arquivos de origem do projeto real.
ses

17

O Darcs é um sistema de gerenciamento de código-fonte de código aberto. Deve dar uma boa ideia para Haskell.


16
Tendo trabalhado bastante em darcs, eu realmente não recomendaria o código fonte. Ele não usa o que eu consideraria bons estilos de Haskell. Acho que se você está curioso para saber o que acontece quando pequenas bases de código aumentam enquanto crescem organicamente, é um bom exemplo. Se você deseja ver um programa com um estilo de escrita consistente ou objetivos claros de design, eu procuraria em outro lugar.
Jason Dagit



5

O GHC é provavelmente o maior ou um dos maiores projetos escritos em Haskell, de código aberto. Quando digo o maior, não me refiro apenas ao tamanho da fonte, mas também ao impacto, uso, inovação e robustez. O GHC pode ensinar muito sobre escrever Haskell.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.