Оригинал статьи расположен тут
Примечание переводчика:
Прошу отнестись снисходительно к качеству перевода. Буду благодарен за конструктивные советы по переводу терминологии. Я не нашел адекватного и короткого перевода термину desugar, поэтому позволил себе изменить заголовок.
Ядро языка Haskell маленькое и большая часть Haskell кода преобразуется в следующее:
- лямбды/применение функций
- алгебраические типы данных/case выражения
- рекурсивные let связывания
- классы типов и специализация, или
- вызов сторонних функций
Однажды разобравшись с этими концепциями у вас будет основа для понимания всего остального в языке. Как результат, язык будет восприниматься компактным и последовательным.
Я хочу показать как многие высокоуровневые возможности преобразуются в низкоуровневые примитивы.