Бакалавриат
2025/2026





Промышленное программирование на Haskell
Статус:
Курс по выбору (Прикладная математика и информатика)
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 3 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Соколов Павел Павлович
Язык:
русский
Кредиты:
4
Контактные часы:
40
Программа дисциплины
Аннотация
Haskell — современный язык программирования общего назначения, который активно используют в индустрии для написания эффективного, компактного, легко читаемого и устойчивого к ошибкам программиста кода. Не верите? В этом курсе вашему вниманию предлагаются настоящие жемчужины функционального программирования, которые заставят вас изменить своё мнение. В первой части курса мы увидим, как Haskell используют в продакшене: как читают и выводят структурированные данные, как комбинируют библиотеки и сайд-эффекты, как тестируют получающийся код. Обещаю, что каждое из решений вас удивит простотой, удобством использования и композициональностью, которые достигаются благодаря главным силам Хаскеля: ленивым вычислениям, контролю сайд-эффектов и продвинутой системе типов. Также будет предложена серия мини-проектов с заданиями, направленными на закрепление полученных знаний.
Цель освоения дисциплины
- Научиться продуктивно программировать на Haskell
- Познакомиться с промышленными стандартами разработки на Haskell
Планируемые результаты обучения
- Освоить функциональную парадигму решения задач
- Попрактиковаться в разделении кода на хорошо изолируемые компоненты
- Научиться продуктивно программировать на Haskell
- Познакомиться с промышленными стандартами разработки на Haskell
Содержание учебной дисциплины
- Синтаксис Haskell. Ленивые вычисления.
- Классы типов. Моноиды. Законы классов. Foldable.
- Traversable. containers.
- Монады. Maybe, State и Either.
- IO: файлы, консоль. Генераторы случайности.
- Конкурентность: IO, STM.
- Композиция эффектов. transformers, mtl, tagless final.
- Type Families. Системы эффектов на примере effectful.
- Драйверы баз данных на примере библиотеки rel8.
- Внутреннее устройство библиотеки Servant.
Элементы контроля
- Защита проектаУстный рассказ о проекте, выполненном на Haskell за время обучения на курсе. Тема проекта – одна из предложенных либо инициативная.
- Домашние заданияМини-проекты по теме лекций и семинаров.
Промежуточная аттестация
- 2025/2026 3rd moduleИтог = Округление(0.7 * ДЗ + 0.3 * ПР), где ДЗ – средняя оценка за все домашние задания, ПР – оценка за проектную работу.
Список литературы
Рекомендуемая основная литература
- Душкин, Р. В. Справочник по языку Haskell : справочник / Р. В. Душкин. — Москва : ДМК Пресс, 2009. — 544 с. — ISBN 5-94074-410-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1252 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Душкин, Р. В. Функциональное программирование на языке Haskell : учебник / Р. В. Душкин. — Москва : ДМК Пресс, 2008. — 609 с. — ISBN 5-94074-335-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1247 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.