Skip to content

Materials for "Typed FP Basics" course

Notifications You must be signed in to change notification settings

astynax/tfpb2019

Repository files navigation

TFPB'19.

Материалы по оффлайн-курсу по "Typed FB Basics".

logo

Что лежит в папках

Каждая лекция находится в своей папке. Папки пронумерованы. Внутри каждой папки есть файлики:

  • *.pdf - пдфка с лекцией
  • *.tex - теховский файлик, из которого собралась пдфка
  • code.hs - код с лекции

Текст лекции (кроме первой) записан в формате ссылка. Для его превращения к ПДФ необходимо выполнить 2 действия:

  • Скачать пакет для работы с tex для своей операционной сисемы. (оно гуглится довольно быстро. Для ubuntu - это один из пакетов texlive. Для windows - MiKTeX и т.д.).
  • Собрать PDF при помощи команды pdflatex %FILE_NAME%. Если не собирается - скорее всего нет необходимого языкового пакета. Нужный можно найти по тексту ошибки.

Рядом с текстом лекций лежит файл code.hs. Это примеры кода, записанные на лекции. В сущности этот файл не несет особенно полезной нагрузки, так как те же примеры кода есть и в самоу лекции.

Каждая папка может содержать дополнительные листинги с кодом. Их описание приведено ниже в разделе "Прошедшие занятия".

Прошедшие занятия.

  1. Алгебраические типы данных
  2. Функции в языке haskell
  3. Pattern matching
    • Примеры паттерн матчинга на листах list_stuff.hs
    • Задания:
      • Реализовать функции map, filter, zip, zipWith используя foldl
      • Реализовать функцию, которая по набору "высок точек", выведет на экран рельеф, заполненный водой. Более подробна задача описана в .tex файле в самом конце. Пример реализации: terrain_after_rain.hs
  4. Классы типов, Моноид
    • Классы типов: LHS+PDF
    • Полугруппа и моноид: LHS+PDF
  5. Записи, Функтор:
    • Records: LHS+PDF
    • HKT, Functor, Bifunctor, Foldable: LHS+PDF
  6. Аппликативный функтор:
  7. Монады Reader, Writer:
  8. Монада State. Парсер-комбинаторы:
  9. Монадные трансформеры:

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •