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

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
18 минут
Предисловие

Оглавление
    -
    Лекция 2
    10 минут
    Введение

    Оглавление
      -
      Лекция 3
      1 час 6 минут
      Лексическая структура Haskell 98
      В этой лекции мы опишем лексическую структуру нижнего уровня языка Haskell. Большинство деталей может быть пропущено при первом прочтении этого описания
      Оглавление
        -
        Тест 1
        21 минута
        -
        Лекция 4
        2 часа 4 минуты
        Выражения
        В этой лекции мы опишем синтаксис и неформальную семантику выражений Haskell , включая, где это возможно, их трансляцию в ядро Haskell
        Оглавление
          -
          Лекция 5
          2 часа 35 минут
          Объявления и связывания имен
          В этой лекции мы опишем синтаксис и неформальную семантику объявлений Haskell
          Оглавление
            -
            Тест 3
            33 минуты
            -
            Лекция 6
            56 минут
            Модули
            В данной лекции мы рассмотрим структуру организации модулей в языке Haskell. Узнаем как правильно импортировать и экспортировать модули, а так же затронем модуль Prelude, который автоматически может импортироваться во все модули
            Оглавление
              -
              Тест 4
              21 минута
              -
              Лекция 7
              1 час 3 минуты
              Предопределенные типы и классы
              Haskell Prelude содержит предопределенные классы, типы и функции, которые неявно импортируются в каждую программу на Haskell. В этой лекции мы опишем типы и классы, находящиеся в Prelude. Большинство функций не описаны здесь подробно, поскольку их назначение легко можно понять исходя из их определений, данных в лекции 8
              Оглавление
                -
                Тест 5
                24 минуты
                -
                Лекция 8
                18 минут
                Основные операции ввода - вывода
                В данной лекции рассматривается система ввода-вывода, которая основана на математическом основании, имя которого - монады. Для осуществления ввода-вывода необходимо понять теорию монад. Монадические операторы используются и для других целей, но об этом в другой лекции. А на данном этапе рассмотрим осуществления на языке Haskell ввода-вывода, какие ошибки при этом могут возникнуть. А также затронем тему обработки исключений в монаде ввода-вывода
                Оглавление
                  -
                  Лекция 9
                  1 час 9 минут
                  Стандартное начало (Prelude)
                  В этой лекции дается описание всего Haskell Prelude. Это описание составляет спецификацию Prelude. Многие определения записаны с точки зрения ясности, а не эффективности, и необязательно, что спецификация реализована так, как показано здесь
                  Оглавление
                    -
                    Лекция 10
                    2 часа 15 минут
                    Синтаксический справочник
                    В этой лекции вы получите общее представление о синтаксисе в Haskell. Мы разберем с вами основные конструкции языка. Этот небольшой справочник поможет вам в дальнейшем написании программ. В данном синтаксическом справочнике основной уклон идет на используемые соглашения об обозначениях и лексическом синтаксисе, а также рассматривается правильное размещение текста и комментарий в программе
                    Оглавление
                      -
                      Лекция 11
                      25 минут
                      Спецификация производных экземпляров
                      Данная лекция посвяшена описанию производных экземпляров
                      Оглавление
                        -
                        Лекция 12
                        5 минут
                        Указания компилятору (псевдокомментарии)
                        Некоторые реализации компилятора поддерживают указания компилятору - псевдокомментарии, которые используются, чтобы передать дополнительные указания или подсказки компилятору, но не являются частью свойства языка Haskell и не меняют семантику программы. Эта лекция резюмирует эту существующую практику. Не требуется, чтобы реализация соблюдала любой псевдокомментарий, но псевдокомментарий должен игнорироваться, если реализация не готова его обработать. С лексической точки зрения, псевдокомментарии выглядят как комментарии, за исключением того, что заключаются в {-# #-}
                        Оглавление
                          -
                          Лекция 13
                          10 минут
                          Рациональные числа
                          Haskell обладает богатой коллекцией численных типов. Стандартные типы включают целые фиксированного и произвольного диапазона, рациональные числа, сформированные для каждого типа целых, вещественные одинарной и двойной точности и комплексные с плавающей точкой. Мы опишем в этой лекции рациональные числа, которые включают в себя библиотеку Ratio и заодно рассмотри ее
                          Оглавление
                            -
                            Тест 7
                            24 минуты
                            -
                            Лекция 14
                            10 минут
                            Комплексные числа
                            Как уже сказали в предыдущей лекции,что Haskell обладает богатой коллекцией численных типов, то в этой лекции мы рассмотрим комплексные числа и библиотеку Complex, которую они используют
                            Оглавление
                              -
                              Лекция 15
                              27 минут
                              Числовые функции
                              В этой лекции вы получите основные сведения о библиотеке Numeric, которая включает в себя числовые функции различных видов
                              Оглавление
                                -
                                Лекция 16
                                8 минут
                                Операции индексации
                                В этой лекции дается описание класса и библиотеки Ix, которая в основном используется для описания массивов
                                Оглавление
                                  -
                                  Лекция 17
                                  19 минут
                                  Массивы
                                  А в этой лекции мы рассмотрим с вами уже сами массивы. Попробуем создать свой первый массив на Haskell'e и рассмотрим библиотеку Array
                                  Оглавление
                                    -
                                    Лекция 18
                                    32 минуты
                                    Утилиты работы со списками
                                    В этой лекции вы узнаете, как работать со списками. Рассмотрим библиотеку List и основные функции над списками
                                    Оглавление
                                      -
                                      Лекция 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 минут
                                                          -