Функциональное программирование
Санкт-Петербург / весна 2014, посмотреть все семестры

Курс знакомит слушателей с функциональными языками программирования и методами программирования на этих языках.

Мы рассмотрим отличия функционального подхода к программированию от традиционного императивного, познакомимся с лямбда-исчислением, как теоретической основой функционального программирования, изучим системы типов функциональных языков и алгоритм вывода типов Хиндли-Дамаса-Милнера.

Мы познакомимся с языком программирования Хаскелл, изучим ленивую и энергичную семантики, алгебраические типы данных и их использование для сопоставления с образцом. Изучая систему типов Хаскелла, мы обсудим параметрический и специальный полиморфизм и, в частности, механизм классов типов.

Мы изучим основные классы типов из стандартной библиотеки Хаскелла, в том числе функторы, аппликативные функторы и монады. Мы обсудим различные стратегии свертки и обхода списков, деревьев и познакомимся с обобщением этих операций в классах типов Foldable и Traversable.

Мы научимся программировать, используя стандартные монады, в частности обсудим проблему ввода-вывода в чистых языках и его реализацию в Хаскелле с помощью монады IO, а также работу с изменяемым состоянием с помощью монады State и родственных ей монад.

Литература

Основная:

  • Miran Lipovaca, Learn You a Haskell for Great Good! A Beginner’s Guide 2011 http://learnyouahaskell.com/chapters (русский перевод: Миран Липовача, Изучай Haskell во имя добра! Издательство: ДМК Пресс, 2012)

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

Дата и время Название Место Материалы
14 февраля
18:30–19:50
Лямбда-исчисление, лекция ФМЛ 239, Актовый зал слайды
14 февраля
20:00–21:20
Практика 1, семинар ФМЛ 239, Актовый зал слайдыфайлы
21 февраля
18:30–19:50
Рекурсия и редукция, лекция ФМЛ 239, Актовый зал слайды
21 февраля
20:00–21:20
Практика 2, семинар ФМЛ 239, Актовый зал файлы
28 февраля
18:30–19:50
Просто типизированное лямбда-исчисление, лекция ФМЛ 239, Актовый зал слайды
28 февраля
20:00–21:20
Практика 3, семинар ФМЛ 239, Актовый зал файлы
07 марта
18:30–19:50
Введение в Haskell, лекция ФМЛ 239, Актовый зал слайды
07 марта
20:00–21:20
Практика 4, семинар ФМЛ 239, Актовый зал файлы
14 марта
18:30–19:50
Программирование на языке Haskell, лекция ФМЛ 239, Актовый зал слайды
14 марта
20:00–21:20
Практика 5, семинар ФМЛ 239, Актовый зал файлы
21 марта
18:30–19:50
Классы типов, лекция ФМЛ 239, Актовый зал слайды
21 марта
20:00–21:20
Практика 6, семинар ФМЛ 239, Актовый зал файлы
04 апреля
18:30–19:50
Свёртки, лекция ФМЛ 239, Актовый зал слайды
04 апреля
20:00–21:20
Практика 7, семинар ФМЛ 239, Актовый зал файлы
11 апреля
18:30–19:50
Аппликативные функторы, лекция ФМЛ 239, Актовый зал слайды
11 апреля
20:00–21:20
Практика 8, семинар ФМЛ 239, Актовый зал файлы
18 апреля
18:30–19:50
Монады, лекция ФМЛ 239, Актовый зал слайдыфайлы
19 апреля
20:00–21:20
Практика 9, семинар ФМЛ 239, Актовый зал файлы
25 апреля
18:30–19:50
Стандартные монады, лекция ФМЛ 239, Актовый зал слайды
25 апреля
20:00–21:20
Практика 10, семинар ФМЛ 239, Актовый зал файлы
16 мая
18:30–19:50
Алгоритм вывода типов, лекция ФМЛ 239, Актовый зал слайды