CheatSheat с базовыми понятиями
4. Кодирование булевых значений, кортежей в чистом бестиповом λ-исчислении
5. Кодирование чисел Чёрча в чистом бестиповом λ-исчислении. Арифметические операции над ними
6. Теорема о неподвижной точке. Y-комбинатор. Решение рекурсивных уравнений на термы
7. Редексы. Одношаговая и многошаговая редукция. Нормальная форма. Редукционные графы
8. Теорема Чёрча-Россера и её cледствия
9. Cтратегии редукции. Теорема о нормализации. Механизмы вызова в функциональных языках
10. Функция предшествования для чисел Чёрча. Комбинатор примитивной рекурсии
13. Свойства систем просто типизированного λ-исчисления
14. Связь между системами Карри и Чёрча. Проблемы разрешимости. Сильная и слабая нормализация.
15. Понятие главного (наиболее общего) типа. Подстановки типа и их композиция. Унификаторы.
17. Алгоритм построения системы ограничений
18. Главная пара и главный тип. Теорема Хиндли-Милнера
19. Обобщения алгоритма Хиндли-Милнера. let-полиморфизм и его ограничения
- В main есть черновик, вместо него появится pdf и ссылка здесь
22. Анаморфизмы и гилеморфизмы
23. Зипперы (молнии). Контексты с дыркой.
1. Основы программирования на Haskell. Связывание. Рекурсия. Базовые конструкции языка
2. Основные встроенные типы языка Haskell. Система модулей. Частичное применение, каррирование.
3. Операторы и их сечения в Haskell. Бесточечный стиль.
4. Ошибки. Основание. Строгие и нестрогие функции. Ленивое и энергичное исполнение.
5. Алгебраические типы данных. Сопоставление с образцом, его семантика.
6. Объявления type и newtype. Метки полей.
7. Списки, стандартные функции для работы с ними. Генерация (выделение) списков.
11. Полугруппы и моноиды. Представители класса типов Monoid.
12. Свёртки списков. Правая и левая свёртки. Энергичные версии. Развертки.
13. Класс типов Foldable и его представители.
14. Класс типов Functor и его представители.
15. Класс типов Applicative и его представители
16. Классы типов Alternative и MonadPlus и их представители.
18. Класс типов Traversable и его представители.
19. Монады. Класс типов Monad. Законы для монад. do-нотация.
20. Класс типов MonadFail, его история и представители
21. Стандартные монады: Maybe и списки.
(Если у вас останется время перед ответом, советую посмотреть в СheatSheat, там очень подробно расписаны монады)
22. Ввод-вывод в чистых языках. Монада IO. Взаимодействие с файловой системой
23-26. Монада Reader, Writer, State, Except
28. Трансформеры монад. Библиотеки transformers и mtl и их связь.