2012-07-02 19 views
27

Cuando me enteré de Haskell, Haskell '98 fue la especificación oficial del lenguaje publicado. Hoy en día, esa especificación es Haskell 2010. (Tengo que admitirlo, me es muy difícil recordar qué diablos son realmente las diferencias).¿Cómo ha cambiado Haskell?

Ahora Haskell ha estado presente por un tiempo de largo. (Bueno, en términos informáticos, es mucho tiempo). Entonces, lo que me pregunto es ... ¿Ha habido algún cambio de diseño importante en el lenguaje sobre la historia de Haskell? ¿O todos los cambios han sido relativamente menores? ¿Hay algún lugar donde pueda encontrar una lista de estos, sin sentarme y leer todas las versiones del Informe Haskell tratando de detectar las diferencias?

+2

Hay un muy breve resumen de la [página wiki] (http://en.wikipedia.org/wiki/Haskell_%28programming_language%29#History), que también nos lleva al [Anuncio de lanzamiento de Haskell 2010] (http://www.haskell.org/pipermail/haskell/2009-November/021750 .html) que tiene un poco más de información sobre esa versión. – huon

+2

El sistema de tipos se ha expandido bastante. El estándar Haskell de facto es GHC, con su amplia variedad de extensiones de lenguaje, muchas de las cuales son más o menos estándar actualmente. –

+0

Haskell no ha cambiado mucho entre H98 y Haskell 2010._Glasgow Haskell_ ha cambiado mucho en ese marco de tiempo. –

Respuesta

26

La historia de la lengua, incluidos los principales hitos y decisiones de diseño, se describe en

@INPROCEEDINGS{Hudak07ahistory, 
    author = {Paul Hudak and John Hughes and Simon Peyton Jones and Philip Wadler}, 
    title = {A history of Haskell: Being lazy with class}, 
    booktitle = {In Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages (HOPL-III}, 
    year = {2007}, 
    pages = {1--55}, 
    publisher = {ACM Press} 
} 
+0

Parece que esto se trata de la mejor fuente de información actualmente escrita, y por supuesto, es una lectura interesante por otras razones también. Entonces, voy a aceptar esta respuesta. – MathematicalOrchid

10

Los Dons de referencia da es excelente y autorizada hasta cuando termina. Aquí hay algunas cosas fuera de mi cabeza, que incluyen cosas que forman parte de la especificación, así como cosas que no están oficialmente en la especificación, pero que consideraría partes no experimentales de GHC que otros compiladores también suelen pretender proporcionar. Esto también incluye clases de tipos y otras características que ahora consideramos estándar, pero que no siempre fueron así, pero que pueden existir solo como bibliotecas.

  • Módulos jerárquicas
  • Mónadas
  • La mónada IO
  • Do notación
  • La Función de Asuntos Exteriores interfaz
  • clases de tipo
  • multiparamétricos
  • excepciones imprecisos
  • tipable y Datos
  • excepciones extensibles
  • dependencias funcionales
  • Funciones de tipo
  • concurrente Haskell
  • MCI
  • GADTs
  • La catástrofe Gran monomorphism (es decir, pérdida de comprensiones mónada, mapa especializado a las listas, etc.)
  • Aplicativo y de Traversable
  • Flechas/Flecha notación
  • MonadFix
+0

Tenga en cuenta que muchos están en el papel HOPL: 8.2.1 Nombres de módulos jerárquicos; 8.1 La interfaz de función extranjera; 7.2 Mónadas; 7.3 E/S monádica; 7.4 Desarrollos posteriores (STM, excepciones imprecisas, etc.). 6.7 GADTs. Escriba las familias, creo que podría ser la principal novedad desde que salió el documento de HOPL. –

+0

Jaja, sí, estoy seguro de que el papel es donde obtuve un poco de mi cronología de ... – sclv

+5

La Gran Catástrofe del Monomorfismo :) al menos tenemos una comprensión de mónada en ghc. –

Cuestiones relacionadas