• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладная математика и информатика»

01
Март

Промышленное программирование на Haskell

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс по выбору
Когда читается:
4-й курс, 3 модуль

Преподаватель

Программа дисциплины

Аннотация

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). — Режим доступа: для авториз. пользователей.

Авторы

  • Соколов Павел Павлович
  • Кононова Елизавета Дмитриевна