2026/2027




Промышленное программирование на Haskell 2
Язык:
русский
Кредиты:
3
Контактные часы:
40
Программа дисциплины
Аннотация
Haskell — современный язык программирования общего назначения, который активно используют в индустрии для написания эффективного, компактного, легко читаемого и устойчивого к ошибкам программиста кода. Не верите? В этом курсе вашему вниманию предлагаются настоящие жемчужины функционального программирования, которые заставят вас изменить своё мнение. В первой части курса мы увидим, как Haskell используют в продакшене: как читают и выводят структурированные данные, как комбинируют библиотеки и сайд-эффекты, как тестируют получающийся код. Обещаю, что каждое из решений вас удивит простотой, удобством использования и композициональностью, которые достигаются благодаря главным силам Хаскеля: ленивым вычислениям, контролю сайд-эффектов и продвинутой системе типов. Также будет предложена серия мини-проектов с заданиями, направленными на закрепление полученных знаний.
Цель освоения дисциплины
- Сформировать практические навыки разработки на Haskell в рамках функциональной парадигмы: научиться продуктивно программировать, применять промышленные стандарты разработки, эффективно разделять код на изолированные компоненты и решать задачи, опираясь на принципы функционального подхода.
Планируемые результаты обучения
- Владеть навыками продуктивно программировать на Haskell
- Ознакомиться с промышленными стандартами разработки на Haskell
- Усвоить функциональную парадигму решения задач
- Практиковаться в разделении кода на хорошо изолируемые компоненты
Содержание учебной дисциплины
- Рекурсивные схемы.
- Решётки, алгоритмы поиска и фундированные множества.
- Однопроходные свёртки и стриминговые алгоритмы.
- Тестирование, основанное на свойствах.
- Параметричность и монада ST.
- Подстановка, монада Free и альфа-эквивалентные термы.
- Уточняющие типы в refined и доказательства в constraint.
- GADT: интерпретатор STLC и другие примеры.
- Линзы Лаарховена и plated.
- Функциональное реактивное программирование.
Элементы контроля
- Домашние заданияМини-проекты по теме лекций и семинаров. Каждое оценивается по 10-балльной шкале.
- Защита проектаУстный рассказ о проекте, выполненном на Haskell за время обучения на курсе. Тема проекта – одна из предложенных либо инициативная.
Список литературы
Рекомендуемая основная литература
- Lipovaca M. Learn you a Haskell for great good!: a beginner's guide. – No Starch Press, 2011. – 404 pp.
- Lipovača, M. (2011). Learn You a Haskell for Great Good! : A Beginner’s Guide. San Francisco, Calif: No Starch Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=440054
- Миран, Л. Изучай Haskell во имя добра! : учебное пособие / Л. Миран , перевод с английского Д. Леушина [и др.]. — Москва : ДМК Пресс, 2012. — 490 с. — ISBN 978-5-94074-749-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/4817 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Языки программирования : учебник для вузов, Баженова, И. Ю., 2012
Рекомендуемая дополнительная литература
- Theories of programming languages, Reynolds, J. C., 2009
- Курт, У. Программируй на Haskell : руководство / У. Курт , перевод с английского Я. О. Касюлевича. — Москва : ДМК Пресс, 2019. — 648 с. — ISBN 978-5-97060-694-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/123706 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.