Несмотря на некоторый опыт работы с Lisp и ML, у меня много проблем с чтением и (идиоматически) написанием Haskell, потому что локальный стиль выглядит
- делать это уничтожение по возможности
- избегать круглых скобок в пользу использования приоритета оператора
- установите половину своей логики в bucketloads перегруженных, не буквенно-цифровых операторов инфикса.
Последнее особенно сложно, потому что существует так много предопределенных операторов, каждый из которых имеет свои собственные условные обозначения и общую семантику, что часто чтение Haskell становится упражнением в Hoogle и :type
.
Есть ли хорошие учебные пособия, которые предполагают знание CS/функциональных концепций, а вместо этого сосредотачиваются на иконах, специфичных для Haskell? Я ищу что-то вроде Real-World Haskell, которое начинается с очень наивной, явной программы, а затем постепенно превращает его в более идиоматический стиль, вводя и объясняя идиомы по мере их появления. Но вместо того, чтобы вводить и объяснять общие понятия, такие как монады и типы классов, он вводит конкретные монады и конкретные классы типов, например "но это именно то, что делает альтернативный моноид!"