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

Функциональное программирование на языке Haskell

ФорматОнлайн
Длительность5-6 часов в неделю
Объём5 занятий
О курсе

Подробнее

В рамках курса мы рассмотрим ленивую и энергичную семантики, алгебраические типы данных и их использование для сопоставления с образцом. Знакомясь с богатой системой типов Haskell, мы обсудим параметрический и специальный полиморфизм и, в частности, механизм классов типов. Мы изучим основные классы типов из стандартной библиотеки Haskell, в том числе функторы и монады. Мы научимся программировать, используя стандартные монады, в частности обсудим проблему ввода-вывода в чистых языках и его реализацию в Haskell с помощью монады IO, а также работу с изменяемым состоянием с помощью монады State.Программа базируется на курсах, читавшихся в Академическом университете РАН и Computer Science Center.Содержание курса:Модуль 1. Первый модуль посвящен основам синтаксиса языка. Вы познакомитесь со стандартной средой разработки, научитесь реализовывать пользовательские функции и операторы, используя механизмы локальных связываний и рекурсии. Вы также изучите основы системы типов языка и его базовые типы.Модуль 2. Второй модуль даст вам возможность более подробно изучить систему типов языка. Вы познакомитесь с параметрическим и специальным полиморфизмом и узнаете, как последний реализован в Haskell через механизм классов типов. В последнем уроке модуля вы познакомитесь с системой модулей языка и компиляцией программ.Модуль 3. Модуль полностью посвящен базовому контейнерному типу функциональных языков - спискам. Вы узнаете как использовать сопоставление с образцом для реализации функций над списками, познакомитесь с широким набором библиотечных функций, позволяющих их создавать и обрабатывать. Также рассмотрите полезные синтаксические надстройки – арифметические последовательности и генераторы списков, которые еще более упрощают работу с этим контейнерным типом. Три последних урока этого модуля посвящены сверткам списков.Модуль 4. Модуль посвящен способам объявления пользовательских типов данных. Вы узнаете как объявлять типы сумм, произведений и сумм произведений и каким образом делать типы полиморфными. В модуле вас ждет обсуждение синтаксиса записей, использования меток полей, рекурсии на уровне типов и свойств рекурсивных типов данных. Вы познакомитесь с такими полезными инструментами, как синонимы типов, обертки newtype и их свойствами. Модуль 5. Основная тема модуля – монады. Вы узнаете как устроен этот класс типов, какие требования предъявляются к конструкторам типов, которые могут быть сделаны его представителям, какие законы должны выполнятся для представителей этого класса. Познакомившись с концепцией вычислений с эффектами, вы поймете, почему этот класс типов так важен для программирования на Haskell.
Требования

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

  • Предполагается, что слушатели имеют представление о программировании на одном из языков (желательно типизированных): С, С++, Java, C# и т. п.
Аудитория

Для кого этот курс

  • Курс рассчитан на студентов младших курсов технических вузов.
Содержание

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

5 занятий
ТемаЧто внутри
01Введение

- Установка и настройка среды
- Функции
- Операторы
- Базовые типы
- Рекурсия
- Локальные связывания и правила отступов

02Основы программирования

- Параметрический полиморфизм
- Параметрический полиморфизм (2)
- Классы типов
- Стандартные классы типов
- Нестрогая семантика
- Модули и компиляция

03Списки

- Функции для работы со списками
- Функции высших порядков над списками
- Генераторы списков
- Правая свертка
- Левая свертка и ее сравнение с правой
- Родственные сверткам функции

04Типы данных

- Типы перечислений
- Типы произведений и сумм произведений
- Синтаксис записей
- Типы с параметрами
- Рекурсивные типы данных
- Синонимы и обертки для типов

05Монады

- Класс типов Functor и законы для него
- Определение монады
- Монада Identity
- Список и Maybe как монады
- Монада IO
- Монада Reader
- Монада Writer
- Монада State

01Введение

- Установка и настройка среды
- Функции
- Операторы
- Базовые типы
- Рекурсия
- Локальные связывания и правила отступов

02Основы программирования

- Параметрический полиморфизм
- Параметрический полиморфизм (2)
- Классы типов
- Стандартные классы типов
- Нестрогая семантика
- Модули и компиляция

03Списки

- Функции для работы со списками
- Функции высших порядков над списками
- Генераторы списков
- Правая свертка
- Левая свертка и ее сравнение с правой
- Родственные сверткам функции

04Типы данных

- Типы перечислений
- Типы произведений и сумм произведений
- Синтаксис записей
- Типы с параметрами
- Рекурсивные типы данных
- Синонимы и обертки для типов

05Монады

- Класс типов Functor и законы для него
- Определение монады
- Монада Identity
- Список и Maybe как монады
- Монада IO
- Монада Reader
- Монада Writer
- Монада State

Организатор

Автор курса

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

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

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

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

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

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

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

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

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

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

Информация обновлена 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 занятий
Бесплатно