Подтвердить что ты не робот

Как Хаскелл изменился?

Когда я впервые узнал Haskell, Haskell '98 была официальной опубликованной спецификацией языка. Сегодня эта спецификация - Haskell 2010. (Должен признаться, мне очень трудно вспомнить, каковы черты различий на самом деле.)

Теперь Хаскелл существует уже давно. (Ну, в вычислительных терминах это долгое время.) Так что мне интересно... Были ли какие-либо серьезные изменения в дизайне языка над историей Haskell? Или все изменения были относительно незначительными? Где-то я могу найти их список, не садясь и не просматривая каждую версию отчета Haskell, пытаясь определить различия?

4b9b3361

Ответ 1

История языка, включая основные этапы и проектные решения, описана в

@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}
}

Ответ 2

Ссылка Dons дает отличную и авторитетную до того момента, когда она закончится. Здесь некоторые вещи с моей головы - в том числе вещи, которые были внесены в спецификацию, а также вещи, которые официально не включены в спецификацию, но которые я бы рассмотрел неэкспериментальные части GHC, которые другие компиляторы также часто стремятся предоставлять. Это также включает в себя классы и другие функции, которые мы теперь считаем стандартными, но которые не всегда были такими, но которые могут существовать исключительно как библиотеки.

  • Иерархические модули
  • Монады
  • IO Monad
  • Обозначать
  • Интерфейс внешних функций
  • Классы с несколькими параметрами
  • Неточные исключения
  • Тип и данные
  • Расширяемые исключения
  • Функциональные зависимости
  • Функции типа
  • Concurrent Haskell
  • STM
  • GADTs
  • Великая катастрофа мономорфизма (т.е. потеря понимания монады, карта, специализирующаяся на списках и т.д.).
  • Аппликативная и перемещаемая
  • Знаки стрелок/стрелок
  • MonadFix