Компьютерные науки

Язык и библиотеки Haskell 98

Программа о чисто функциональном программировании. Охватывает синтаксис, семантику и стандартные библиотеки языка Haskell 98, включая работу с монадами и типами.
Студентов 717 Выпускников 72 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Эта учебная программа посвящена мощным возможностям нестрогого функционального языка Haskell. В учебной программе детально рассматриваются концепции функций высшего порядка, статическая полиморфная типизация, сопоставление с образцом, модульная система, а также работа с монадическим вводом-выводом и окружением Prelude. Изучение выстроено вокруг спецификации языка и его семантики. Материал ориентирован на программистов и исследователей, которым необходимо освоить подходы чисто функционального программирования.
Цели
  • Дать фундаментальное понимание парадигмы функционального программирования.
  • Сформировать знания синтаксиса и семантики языка Haskell 98.
  • Познакомить с устройством модульной системы и встроенными типами данных.
Чему я научусь?
  • Проектировать программы с использованием функций высшего порядка и алгебраических типов.
  • Применять монады для организации ввода-вывода в чисто функциональной среде.
  • Использовать стандартные библиотеки и утилиты Haskell для решения прикладных задач.

Авторы

Jones Simon-Peyton
Jones Simon-Peyton
Principal Researcher, Microsoft Research Cambridge.
Чему я научусь?
  • Проектировать программы с использованием функций высшего порядка и алгебраических типов.
  • Применять монады для организации ввода-вывода в чисто функциональной среде.
  • Использовать стандартные библиотеки и утилиты Haskell для решения прикладных задач.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Предисловие
2 Введение
3 Лексическая структура Haskell 98 В этой лекции мы опишем лексическую структуру нижнего уровня языка Haskell. Большинство деталей может быть пропущено... В этой лекции мы опишем лексическую структуру нижнего уровня языка Haskell. Большинство деталей может быть пропущено при первом прочтении этого описания ещё
Лексическая структура Haskell 98 тест для курса Язык и библиотеки Haskell 98 35 мин
4 Выражения В этой лекции мы опишем синтаксис и неформальную семантику выражений Haskell , включая, где это возможно,... В этой лекции мы опишем синтаксис и неформальную семантику выражений Haskell , включая, где это возможно, их трансляцию в ядро Haskell ещё
Выражения тест для курса Язык и библиотеки Haskell 98 50 мин
Объявления и связывания имен тест для курса Язык и библиотеки Haskell 98 55 мин
5 Модули В данной лекции мы рассмотрим структуру организации модулей в языке Haskell. Узнаем как правильно импортировать и... В данной лекции мы рассмотрим структуру организации модулей в языке Haskell. Узнаем как правильно импортировать и экспортировать модули, а так же затронем модуль Prelude, который автоматически может импортироваться во все модули ещё
Модули тест для курса Язык и библиотеки Haskell 98 35 мин
6 Предопределенные типы и классы Haskell Prelude содержит предопределенные классы, типы и функции, которые неявно импортируются в каждую программу на Haskell.... Haskell Prelude содержит предопределенные классы, типы и функции, которые неявно импортируются в каждую программу на Haskell. В этой лекции мы опишем типы и классы, находящиеся в Prelude. Большинство функций не описаны здесь подробно, поскольку их назначение легко можно понять исходя из их определений, данных в лекции 8 ещё
Предопределенные типы и классы тест для курса Язык и библиотеки Haskell 98 40 мин
7 Основные операции ввода - вывода В данной лекции рассматривается система ввода-вывода, которая основана на математическом основании, имя которого - монады. Для... В данной лекции рассматривается система ввода-вывода, которая основана на математическом основании, имя которого - монады. Для осуществления ввода-вывода необходимо понять теорию монад. Монадические операторы используются и для других целей, но об этом в другой лекции. А на данном этапе рассмотрим осуществления на языке Haskell ввода-вывода, какие ошибки при этом могут возникнуть. А также затронем тему обработки исключений в монаде ввода-вывода ещё
8 Стандартное начало (Prelude) В этой лекции дается описание всего Haskell Prelude. Это описание составляет спецификацию Prelude. Многие определения записаны... В этой лекции дается описание всего Haskell Prelude. Это описание составляет спецификацию Prelude. Многие определения записаны с точки зрения ясности, а не эффективности, и необязательно, что спецификация реализована так, как показано здесь ещё
Стандартное начало (Prelude) тест для курса Язык и библиотеки Haskell 98 45 мин
9 Синтаксический справочник В этой лекции вы получите общее представление о синтаксисе в Haskell. Мы разберем с вами основные... В этой лекции вы получите общее представление о синтаксисе в Haskell. Мы разберем с вами основные конструкции языка. Этот небольшой справочник поможет вам в дальнейшем написании программ. В данном синтаксическом справочнике основной уклон идет на используемые соглашения об обозначениях и лексическом синтаксисе, а также рассматривается правильное размещение текста и комментарий в программе ещё
10 Спецификация производных экземпляров Данная лекция посвяшена описанию производных экземпляров
11 Указания компилятору (псевдокомментарии) Некоторые реализации компилятора поддерживают указания компилятору - псевдокомментарии, которые используются, чтобы передать дополнительные указания или подсказки... Некоторые реализации компилятора поддерживают указания компилятору - псевдокомментарии, которые используются, чтобы передать дополнительные указания или подсказки компилятору, но не являются частью свойства языка Haskell и не меняют семантику программы. Эта лекция резюмирует эту существующую практику. Не требуется, чтобы реализация соблюдала любой псевдокомментарий, но псевдокомментарий должен игнорироваться, если реализация не готова его обработать. С лексической точки зрения, псевдокомментарии выглядят как комментарии, за исключением того, что заключаются в {-# #-} ещё
12 Рациональные числа Haskell обладает богатой коллекцией численных типов. Стандартные типы включают целые фиксированного и произвольного диапазона, рациональные числа,... Haskell обладает богатой коллекцией численных типов. Стандартные типы включают целые фиксированного и произвольного диапазона, рациональные числа, сформированные для каждого типа целых, вещественные одинарной и двойной точности и комплексные с плавающей точкой. Мы опишем в этой лекции рациональные числа, которые включают в себя библиотеку Ratio и заодно рассмотри ее ещё
Рациональные числа тест для курса Язык и библиотеки Haskell 98 40 мин
13 Комплексные числа Как уже сказали в предыдущей лекции,что Haskell обладает богатой коллекцией численных типов, то в этой лекции... Как уже сказали в предыдущей лекции,что Haskell обладает богатой коллекцией численных типов, то в этой лекции мы рассмотрим комплексные числа и библиотеку Complex, которую они используют ещё
14 Числовые функции В этой лекции вы получите основные сведения о библиотеке Numeric, которая включает в себя числовые функции... В этой лекции вы получите основные сведения о библиотеке Numeric, которая включает в себя числовые функции различных видов ещё
15 Операции индексации В этой лекции дается описание класса и библиотеки Ix, которая в основном используется для описания массивов
16 Массивы А в этой лекции мы рассмотрим с вами уже сами массивы. Попробуем создать свой первый массив... А в этой лекции мы рассмотрим с вами уже сами массивы. Попробуем создать свой первый массив на Haskell'e и рассмотрим библиотеку Array ещё
Массивы тест для курса Язык и библиотеки Haskell 98 50 мин
17 Утилиты работы со списками В этой лекции вы узнаете, как работать со списками. Рассмотрим библиотеку List и основные функции над... В этой лекции вы узнаете, как работать со списками. Рассмотрим библиотеку List и основные функции над списками ещё
18 Утилиты Maybe В этой лекции вы получите сведения о конструкторе типа Maybe. Узнаете каким образом он определен в... В этой лекции вы получите сведения о конструкторе типа Maybe. Узнаете каким образом он определен в Prelude, а так же затроним библиотеку, которую он использует ещё
19 Утилиты работы с символами В этой лекции дается описание работы с символами. Здесь мы рассмотрим представление символов в различных кодировках... В этой лекции дается описание работы с символами. Здесь мы рассмотрим представление символов в различных кодировках в основном это Unicode, ASCII и latin-1. Рассмотри модуль и библиотеку Char ещё
20 Утилиты работы с монадами А вот в этой лекции мы вернемся с вами к рассмотрению монад. Если вы помните, мы... А вот в этой лекции мы вернемся с вами к рассмотрению монад. Если вы помните, мы уже начали изучение монад ввода-вывода. Здесь мы уже поподробней рассмотрим работу с монадами, узнаем какими функциями она пользуется, рассмотрим основные классы, ну и конечно же, не забудем упомянуть о библиотеке Monad ещё
Утилиты работы с монадами тест для курса Язык и библиотеки Haskell 98 50 мин
21 Ввод - вывод В этой лекции мы продолжим с вами рассмотрение ввода-вывода, но только уже более подробней обсудим ошибки,... В этой лекции мы продолжим с вами рассмотрение ввода-вывода, но только уже более подробней обсудим ошибки, которые могут возникнуть при использовниии простых функций. Узнаем как работать с файлами и каталогами в файловой системе и научимся использовать буферизацию ещё
Ввод - вывод тест для курса Язык и библиотеки Haskell 98 40 мин
22 Функции с каталогами В этой лекции вы узнаете о функциях, которые работают с каталогами в файловой системе
Функции с каталогами тест для курса Язык и библиотеки Haskell 98 30 мин
23 Системные функции Haskell имеет свою библиотеку, которая помогает Haskell'ю взаимодействовать с операционной системой. Библиотека называется System, имеено ее... Haskell имеет свою библиотеку, которая помогает Haskell'ю взаимодействовать с операционной системой. Библиотека называется System, имеено ее мы и рассмотрим в данной лекции ещё
24 Дата и время В этой лекции мы рассмотрим библиотеку Time. Эта библиотека предназначена для работы Haskell'я со временем системных... В этой лекции мы рассмотрим библиотеку Time. Эта библиотека предназначена для работы Haskell'я со временем системных часов и датой ещё
25 Локализация Языком Haskell занимаются по всему миру и адаптировать язык под каждую страну очень сложно. Для этого... Языком Haskell занимаются по всему миру и адаптировать язык под каждую страну очень сложно. Для этого придумали библиотеку Local, котороя позволяет настроить программу под какие-то определенные национальные особенности. Именно эту библиотеку мы изучем в этой лекции ещё
26 Время CPU В этой лекции мы рассмотрим модуль CPUTime
27 Случайные числа В этой лекции мы изучим как правильно работать с генератором псевдослучайных чисел. Рассмотрим библиотеку Random, ее... В этой лекции мы изучим как правильно работать с генератором псевдослучайных чисел. Рассмотрим библиотеку Random, ее классы и основные возможности этой библиотеки ещё
Случайные числа тест для курса Язык и библиотеки Haskell 98 25 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.