ФП 5SE осень 2018

Материал из CSC Wiki
Перейти к:навигация, поиск

Лекции

Преподаватель: Москвин Денис Николаевич dmoskvin@gmail.com

Вопросы к экзамену

Консультация состоится 17.01.2019 в Таймсе в ауд. белые доски в 12:00.

Запись на конкретное время осуществляется этой ссылке.

Экзамен будет проходить 18.01.2019 в Таймсе в ауд. белые доски с 10:30.

Слайды

Лекция 1. Лямбда-исчисление 03.09.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 2. Рекурсия и редукция 10.09.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 3. Просто типизированное лямбда-исчисление 17.09.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 4. Введение в Haskell 24.09.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 5. Программирование на языке Haskell 01.10.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 6. Классы типов 08.10.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 7. Свертки 15.10.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 8. Аппликативные функторы 29.10.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 9. Использование аппликативных функторов 12.11.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 10. Монады 19.11.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 11. Стандартные монады 26.11.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 12. Трансформеры монад 03.12.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 13. Алгоритм вывода типов 10.12.2018 (пн) 12:10-13:30, Таймс, белые доски

Лекция 14. Рекурсивные типы 17.12.2018 (пн) 15:20-16:40, Таймс, белые доски

Лекция 15. Молнии и линзы 17.12.2018 (пн) 10:30-11:50, Таймс, белые доски

Полезные ссылки

Hoogle

Typeclassopedia

Haskell 2010 Language Report

Практика Жаворонков

Табличка с результатами

Контакты:

Материалы с занятий и домашние задания:

Правила игры и прочее

Сдача домашних заданий

  • Первые три -- мне на почту. Формат -- pdf(LaTeX)
  • Следующие -- в виде hs-исходника с заполненными пробелами(выпиленными undefined), опять же мне на почту

Дедлайны

  • Мягкий -- указан в строке с соответствующим заданием. Если присылаете до него -- я смотрю, отвечаю и можно прислать исправления.
  • Жесткий -- наступает через сутки после мягкого. Присылать можно и нужно, я не снижаю баллы, но не гарантирую, что буду принимать исправления

Зачет

TBD

Практика Халанский

Правила получения зачёта

Ещё не придумал, посмотрю по вашей же, студентов, реакции на разные части пары. Планируется, что нужно будет сдать хотя бы на минимум каждую из изученных тем, как домашние, так и самостоятельные работы, а если в теме хоть что-то не сдано, то её нужно будет закрыть на устном зачёте на зачётной неделе. Однако если окажется, что это требование слишком строгое, будут придуманы новые критерии.

Правила сдачи

Почта: dkhalansky+fp2018@gmail.com

Письма с готовыми домашними заданиями должны иметь тему в формате "Фамилия-НомерДомашнейРаботы". Письма с вопросами и предложениями могут быть с любой темой, но наличие "+fp2018" в адресе почты всё равно важно.

  • На домашние задания отводится две недели, но выдаваться задания будут каждую неделю. Таким образом, к примеру, в условный четверг третьей недели можно будет сдавать домашнее задание за вторую и третью неделю.
  • Жёсткий крайний срок на сдачу -- ровно начало пары.
  • Гарантируется, что задание будет проверено в течение трёх суток после его прибытия на мою почту. Почти всегда оно будет проверено в течение одних суток, но рассчитывать на это не следует.

Задания

  • 06.12-23.12 -- задание На зачёт нужно решить всё из этого файла. 17.12: исправил грубую ошибку в описании нормальной стратегии редукции. Не знаю, чем я думал, когда писал текст. Простите меня.
  • Дополнительные задачи: задание. По некоторым из тем придумал задачи, которые не опираются на зачётное задание. Каждая задача даёт ceil(n/2) плюсов, где n -- количество баллов, необходимых для зачёта темы.

Дополнительные материалы

Где учиться

Лучшие источники советов по любому вопросу -- Haskell Wiki.

"Где мне найти функцию, которая бы делала X?" -- Hoogle.

"Как сделать свой код на Haskell более пугающим для сторонних наблюдателей / Какие комбинаторы используются в коде Haskell" -- Pointfree.io

Как сделать свой код лучше, покажет программа hlint.

Полезные ссылки

Настройка среды:

Классы типов:

Книги

  • Haskell Programming from first principles. Для начинающих. Говорят, что лучше, чем "Learn you a Haskell". Ещё говорят, что её возможно спиратить.