Автор: Simon-Peyton Jones
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
21:25:00
Студентов:
533
Выпускников:
18
Качество курса:
4.50 | 5.00
Haskell является чисто функциональным языком программирования общего назначения, который включает много последних инноваций в разработке языков программирования.
Haskell обеспечивает функции высокого порядка, нестрогую семантику, статическую полиморфную типизацию, определяемые пользователем алгебраические типы данных, сопоставление с образцом, описание списков, модульную систему, монадическую систему ввода - вывода и богатый набор примитивных типов данных, включая списки, массивы, целые числа произвольной и фиксированной точности и числа с плавающей точкой. Haskell является и кульминацией, и кристаллизацией многих лет исследования нестрогих функциональных языков. Этот курс определяет синтаксис программ на Haskell и неформальную абстрактную семантику для понимания смысла таких программ.
 

План занятий

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