Buena fuente de Haskell para leer y aprender de [cerrado]


347

¿Cuáles son algunos programas de código abierto que usan Haskell y que se pueden considerar como Haskell modernos de buena calidad? ? Cuanto más grande sea la base del código, mejor.

Quiero aprender de su código fuente. Siento que he superado el punto de aprender de ejemplos de código pequeño, que a menudo son del mundo esotérico y pequeño. Quiero ver cómo está estructurado el código, cómo interactúan las mónadas cuando tienes muchas cosas sucediendo (registro, E / S, configuración, etc.).


99
Aunque esta pregunta se ha cerrado, los usuarios pueden editar la respuesta 'aceptada' y agregarle su respuesta.
George Stocker

Respuestas:


276

Lo que recomiendo

Lea el código de personas de diferentes escuelas de posgrado en la década de 1990

Leer el código de los viejos maestros a ciertas personas (lista incompleta)

Tenga en cuenta que personas como yo, Coutts, Mitchell, O'Sullivan, Lynagh, etc., aprendieron nuestro estilo Haskell de estos muchachos.

Lee algunas aplicaciones


98
Esto es típico de Haskell Dammit. Con php, lees un mundo hola y sigues escribiendo sitios web pobres. Con Haskell, no hay un límite superior de lo que puede aprender, siempre hay extensiones y documentos más interesantes por venir. Y justo ahora aprendí que las universidades tienen diferentes estilos, y por lo tanto debo verificar todo eso ... ¿Cuándo tengo tiempo para escribir mis propios proyectos de haskell? :)
Tarrasch

39
¿Cuáles, brevemente, son las características de los diferentes estilos?
Grautur

17
@grautur: Y, lo que es más importante, ¿por qué son diferentes? ¿Hubo buenas razones técnicas?
Robert Massaioli

10
En mi opinión, los diferentes estilos son el resultado de la separación geográfica (y a veces desacuerdos filosóficos) de las diferentes escuelas en la era pre-wiki / internet; y el legado de los idiomas proto-Haskell en cada escuela que influyen en el estilo. Con la aparición de Hackage, wikis y github, ahora existe en gran medida un estilo Haskell homogéneo (basado en el uso de Glasgow y GHC).
Don Stewart

15
En CMU, aprendí la semántica denotacional y la derivación de programas (transformación sistemática de especificaciones a implementaciones), los cuales han tenido un profundo impacto en mi enfoque de programación. Verás estos dos temas regularmente en mi blog . Cuando trabajo en una biblioteca de software, elijo un pequeño número de tipos y comienzo con una pregunta central: "¿Qué significa?". Cuando veo código de bajo nivel, por ejemplo, imperativo / IO, pregunto "¿De qué abstracción denotativa es este código una implementación, y cómo podría derivarse esa implementación de la abstracción?"
Conal

61

XMonad es un administrador de ventanas de mosaico de código abierto, originalmente modelado libremente en dwm . Hay muchas extensiones, de calidad variable, pero el núcleo es compacto y está bien organizado.


36
El núcleo, fwiw, también está extremadamente cuidadosamente diseñado. El núcleo del núcleo, StackSet, se ha verificado (es decir, propiedades de control de calidad) en el comprobador de teoremas de Coq. Es un ejemplo de cuidado del diseño patológico.
Don Stewart

66
@don: "patológico" como en "bueno", ¿no? :)
Francesco

8
Sí :-) Spencer y yo prestamos más atención a la elaboración del núcleo xmonad que a cualquier proyecto en el que haya estado involucrado.
Don Stewart

18
  1. Haskell: Functional Programming with Types

    Joeri van Eekelen y col. El | Wikilibros Publicado en 2007, 290 páginas

  2. Learn You a Haskell for Great Good!

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

  3. Real World Haskell

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

  4. The Haskell Road to Logic, Maths and Programming

    Kees Doets, Jan van Eijck | Publicaciones universitarias publicadas en 2004, 449 páginas


66
Estos son libros, no los archivos fuente del proyecto real.
ses

17

Darcs es un sistema de gestión de código fuente abierto. Debería darte una buena idea para Haskell.


16
Habiendo trabajado bastante en darcs, realmente no recomendaría su código fuente. No usa lo que consideraría buenos estilos Haskell. Supongo que si tienes curiosidad por lo que sucede cuando las bases de código pequeñas crecen mientras crecen orgánicamente, entonces es un buen ejemplo. Si desea ver un programa con un estilo de escritura consistente o objetivos de diseño claros, buscaría en otro lado.
Jason Dagit



5

GHC es probablemente el más grande o uno de los proyectos más grandes escritos en Haskell que es de código abierto. Cuando digo mayor, no solo me refiero al tamaño de la fuente, sino también al impacto, uso, innovación y robustez. GHC puede enseñarle mucho sobre cómo escribir Haskell.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.