Мы используем 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 г.

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

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

Программа: Твой JavaScript
Программа: Твой JavaScript

Цель курса - дать вам исчерпывающее понимание JavaScript. Мы не обещаем сделать из вас сеньора за две недели, это сказки. Наша задача - предоставить самую подробную и глубокую баз…

Онлайн21 занятий
4 250 ₽
Основы C#
Основы C#

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

Онлайн10 занятий
3 999 ₽
Профессиональная переподготовка «Инженер-программист станков ЧПУ»
−8%256 часов
Профессиональная переподготовка «Инженер-программист станков ЧПУ»

▶️ Профессиональная переподготовка «Инженер-программист станков ЧПУ» с выдачей диплома. Дистанционное (онлайн) обучение в учебном центре «НЦПО». 🔥Обучение в рассрочку от 1320 руб.…

Онлайн3 занятий
Домашние заданияИнтерактивные тренажёры+3
17 250 ₽−8%
15 850 ₽от 1 320 ₽/мес на 12 мес.
AI-first разработка на Python
−25%1 час
AI-first разработка на Python

Соберете и настроите свою профессиональную среду для разработки с агентами: от написания кода до ревью, автотестов и проверки безопасности.

Онлайн12 занятий
Домашние заданияИнтерактивные тренажёры+3
16 900 ₽−25%
12 600 ₽от 738 ₽/мес на 24 мес.
Начать без затрат

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

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

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

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

Онлайн12 занятий
Бесплатно
Claude Code с нуля до реальных задач
Бесплатно1 месяц
Claude Code с нуля до реальных задач

Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT. Программа курс…

Онлайн
Бесплатноот 11 647 ₽/мес