Онлайн курс Функциональное программирование на языке Haskell (часть 2) от Stepik

Бесплатно
Описание курса

Этот курс является продолжением курса "Функциональное программирование на языке Haskell".

В его рамках мы познакомимся с рядом новых классов типов и типов данных, которые позволят сделать наши программы еще более выразительными и лаконичным. Особое внимание будет уделено программированию с эффектами. Мы встретимся с новыми монадами, узнаем про аппликативные функторы - класс типов, лежащий между функторами и монадами. Мы обобщим понятие свертки, знакомое нам по спискам, на произвольные контейнерные типы, введя класс типов Foldable. Не останавливаясь на этом, мы введем класс Traversable, соединяющий идеи функтора и свертки с одной стороны и отображающей/сворачивающей функции с аппликативным/монадическим эффектом с другой. Мы научимся реализовывать вычисления с составными эффектами, используя как механизм композиции на уровне типов, так и более мощный инструментарий монадических трансформеров.

При изучении языка мы стараемся не просто познакомить слушателей с библиотечными функциями, типами и классами типов, но и разобрать их реализацию. Часто мы просто последовательно конструируем модуль стандартной библиотеки с нуля, по ходу дела обсуждая причины, по которым приняты те или иные решения. Нам кажется, что такой подход способствует более глубокому пониманию устройства языка и приводит к более зрелым навыкам программирования.