Функциональное и логическое программирование

Обзор курса

Темы лекций

  1. Введение. Функциональное программирование. Язык Haskell
  2. Бестиповое λ-исчисление
  3. Элементы теории типов. Простое типизированное λ-исчисление
  4. Параметрический полиморфизм. Алгебраические типы. Классы типов.
  5. Некоторые стандартные монады. Композиция типов. Трансформаторы монад.
  6. Ленивые вычисления.
  7. Обработка исключений.
  8. Программирование на уровне типов

Лабораторные работы

  1. Знакомство с Haskell. Компилятор GHC. Интерпретатор GHCi. Среда разработки. Значения. Арифметические операторы.
  2. Модули. Функция main. do-нотация. Аннотации типов. Основные типы.
  3. Рекурсия. Сопоставление с шаблоном. Функции работы со списками.
  4. Стандартные классы типов. Объявления классов типов.
  5. Некоторые основные библиотеки.
  6. Функциональное проектирование
  7. Программирование на уровне типов

Рекомендованная литература

Основная

  1. Миран Липовача. Изучай Haskell во имя добра! - М.:ДМК Пресс, 2017.
  2. Уилл Курт. Программируй на Haskell - М.:ДМК Пресс, 2019.
  3. Бенжамин Пирс. Типы в языках программирования. M.: “Лямбда-пресс”: “Добросвет”, 2014.

Дополнительная

  1. Алехандро Серано Мена. Изучаем Haskell - СПб:Питер, 2015.
  2. Ричард Бёрд. Жемчужины проектирования алгоритмов: функциональный подход : С примерами на языке Haskell - М.:ДМК Пресс, 2013.
  3. Душкин Р. В. Функциональное программирование на языке Haskell. — М.: ДМК Пресс, 2006. — 608 стр. — ISBN 5-94074-335-8.
  4. Душкин Р. В. Справочник по языку Haskell. — М.: ДМК Пресс, 2008. — 544 стр. — ISBN 5-94074-410-9.