Мы используем cookie для стабильной работы сервиса. Подробнее

Функциональное программирование на языке Haskell (часть 2)

ФорматОнлайн
Объём4 занятий
О курсе

Подробнее

Этот курс является продолжением курса "Функциональное программирование на языке Haskell". В его рамках мы познакомимся с рядом новых классов типов и типов данных, которые позволят сделать наши программы еще более выразительными и лаконичным. Особое внимание будет уделено программированию с эффектами. Мы встретимся с новыми монадами, узнаем про аппликативные функторы - класс типов, лежащий между функторами и монадами. Мы обобщим понятие свертки, знакомое нам по спискам, на произвольные контейнерные типы, введя класс типов Foldable. Не останавливаясь на этом, мы введем класс Traversable, соединяющий идеи функтора и свертки с одной стороны и отображающей/сворачивающей функции с аппликативным/монадическим эффектом с другой. Мы научимся реализовывать вычисления с составными эффектами, используя как механизм композиции на уровне типов, так и более мощный инструментарий монадических трансформеров. При изучении языка мы стараемся не просто познакомить слушателей с библиотечными функциями, типами и классами типов, но и разобрать их реализацию. Часто мы просто последовательно конструируем модуль стандартной библиотеки с нуля, по ходу дела обсуждая причины, по которым приняты те или иные решения. Нам кажется, что такой подход способствует более глубокому пониманию устройства языка и приводит к более зрелым навыкам программирования.Программа базируется на курсах, читавшихся в Академическом университете РАН и Computer Science Center.
Требования

Что нужно для старта

  • Знакомство с синтаксисом и стандартной библиотекой Haskell в объеме первой части курса
Содержание

Программа курса

4 занятия
ТемаЧто внутри
01Аппликативные функторы

- Определение аппликативного функтора
- Представители класса типов Applicative
- Аппликативный парсер Parsec
- Аппликативный парсер своими руками
- Композиция на уровне типов

02Управление эффектами

- Класс типов Foldable
- Класс типов Traversable
- Законы и свойства класса Traversable
- Связь классов Monad и Applicative
- Классы типов Alternative и MonadPlus

03Монады и эффекты

- Монада Except
- Монада Cont
- Трансформеры монад
- Трансформер ReaderT

04Трансформеры монад

- Трансформер WriterT
- Трансформер StateT
- Трансформер ExceptT
- Неявный лифтинг
- Задачи на трансформеры

01Аппликативные функторы

- Определение аппликативного функтора
- Представители класса типов Applicative
- Аппликативный парсер Parsec
- Аппликативный парсер своими руками
- Композиция на уровне типов

02Управление эффектами

- Класс типов Foldable
- Класс типов Traversable
- Законы и свойства класса Traversable
- Связь классов Monad и Applicative
- Классы типов Alternative и MonadPlus

03Монады и эффекты

- Монада Except
- Монада Cont
- Трансформеры монад
- Трансформер ReaderT

04Трансформеры монад

- Трансформер WriterT
- Трансформер StateT
- Трансформер ExceptT
- Неявный лифтинг
- Задачи на трансформеры

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Функциональное программирование на языке Haskell (часть 2)» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 7 сентября 2026 г.

Продолжить выбор

Похожие курсы

C++ для разработки игр
7 сентября
C++ для разработки игр

Освой С++ на базовом уровне, создай свою первую игру уже через 2 месяца обучения, в дальнейшем сможешь применить эти знания для работы в Unreal Engine.

Онлайн4 занятий
Домашние заданияВидеоуроки+2
90 300 ₽Рассрочка на 12 мес.
Основы разработки на C++: белый пояс
Основы разработки на C++: белый пояс

Этот курс посвящён знакомству с языком программирования С++. Вы научитесь использовать его основные конструкции, создавать свои типы данных, разбивать программу на классы и функци…

Онлайн5 занятий
20 000 ₽
GoLang для начинающих
25 часов
GoLang для начинающих

Этот пакет курсов — для тех, кто хочет разобраться в Go по-настоящему, а не просто выучить синтаксис 🐹 🎯 Цель курса Дать прочную базу Go и довести до уверенного уровня работы с яз…

Онлайн1 занятий
3 870 ₽
Основы C#
Основы C#

Курс несомненно подойдёт начинающим разработчикам, который хотят освоить современный и востребованный язык программирования. Курс мы начнём с изучения основ - встроенных в язык ти…

Онлайн10 занятий
3 999 ₽
Технология разработки программного обеспечения - переподготовка
−40%2 месяца
Технология разработки программного обеспечения - переподготовка

Курс профессиональной переподготовки «Технология разработки программного обеспечения» по всей России. ✓ Дистанционное обучение ✓ Получение диплома с бесплатной доставкой ✓ Цена 32…

Онлайн5 занятий
Текстовые уроки
54 980 ₽−40%
32 980 ₽
Начать без затрат

Бесплатные курсы

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно