online - ¿Cómo ha cambiado Haskell?
haskell pdf (2)
Cuando aprendí Haskell por primera vez, Haskell ''98 era la especificación de idioma oficial publicada. Hoy, esa especificación es Haskell 2010. (Debo admitir que me cuesta mucho recordar qué diablos son las diferencias).
Ahora Haskell ha existido por mucho tiempo. (Bueno, en términos de computación es mucho tiempo). Entonces, me pregunto si ... ¿Ha habido algún cambio importante en el diseño del lenguaje en 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 intentando detectar las diferencias?
La historia del lenguaje, incluidos los hitos principales y las 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} }
La referencia que da Dons es excelente y autoritaria hasta cuando termina. Aquí hay algunas cosas que están fuera de mi cabeza, que incluyen cosas que se convirtieron en la especificación, así como cosas que no están oficialmente en la especificación pero que yo consideraría partes no experimentales de GHC que otros compiladores también suelen apuntar a 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 simplemente como bibliotecas.
- Módulos jerárquicos
- Mónadas
- La monada IO
- Hacer notación
- La interfaz de función extranjera
- Clases de tipo multiparamétrico
- Excepciones imprecisas
- Tipificable y datos
- Excepciones extensibles
- Dependencias funcionales
- Funciones tipo
- Haskell concurrente
- STM
- GADTs
- La gran catástrofe del monomorfismo (es decir, la pérdida de la comprensión de la mónada, el mapa especializado en listas, etc.)
- Aplicativo y Traversable
- Flechas / notación de flecha
- MonadFix