Материалы по оффлайн-курсу по "Typed FB Basics".
Каждая лекция находится в своей папке. Папки пронумерованы. Внутри каждой папки есть файлики:
*.pdf
- пдфка с лекцией*.tex
- теховский файлик, из которого собралась пдфкаcode.hs
- код с лекции
Текст лекции (кроме первой) записан в формате ссылка. Для его превращения к ПДФ необходимо выполнить 2 действия:
- Скачать пакет для работы с
tex
для своей операционной сисемы. (оно гуглится довольно быстро. Для ubuntu - это один из пакетовtexlive
. Для windows - MiKTeX и т.д.). - Собрать
PDF
при помощи командыpdflatex %FILE_NAME%
. Если не собирается - скорее всего нет необходимого языкового пакета. Нужный можно найти по тексту ошибки.
Рядом с текстом лекций лежит файл code.hs
. Это примеры кода, записанные на лекции. В сущности этот файл не несет особенно полезной нагрузки, так как те же примеры кода есть и в самоу лекции.
Каждая папка может содержать дополнительные листинги с кодом. Их описание приведено ниже в разделе "Прошедшие занятия".
- Алгебраические типы данных
- Синтаксис языка Haskell: LHS+PDF
- Алгебраические типы данных adt.hs
- Задание про фишки #1. Пример реализации columns.hs
- Функции в языке
haskell
- Задание про фишки #2 (https://gist.github.com/astynax/1eb88e195c4bab2b8d31d04921b18dd0). Пример реализации move4x4.hs
- Pattern matching
- Примеры паттерн матчинга на листах list_stuff.hs
- Задания:
- Реализовать функции
map
,filter
,zip
,zipWith
используяfoldl
- Реализовать функцию, которая по набору "высок точек", выведет на экран рельеф, заполненный водой. Более подробна задача описана в .tex файле в самом конце. Пример реализации: terrain_after_rain.hs
- Реализовать функции
- Классы типов, Моноид
- Записи, Функтор:
- Аппликативный функтор:
- Теория: LHS+PDF
- Домашка: KeepFlip.hs
- Монады Reader, Writer:
- Монада State. Парсер-комбинаторы:
- Монадные трансформеры: