Открыта запись на курс CS314. Функциональное программирование. При записи требуется ввести кодовое слово, определяющее вашу группу: 48 или 49 для групп 4.8 и 4.9 соответственно. На странице курса пока можно увидеть программу прошлого года, предварительный план лекций и лабораторных работ на текущий год (в плане возможны изменения), учебную карту дисциплины, а также список литературы по курсу.
В рамках курса будет использоваться сайт GitHub, поэтому, если вы на нём ещё не зарегистрированы, обязательно зарегистрируйтесь. На странице курса (в разделе «Лабораторные работы») имеется элемент «Аккаунт на гитхабе», в котором необходимо оставить свой логин на гитхабе.
Напоминаю о необходимости записаться на курс (кодовое слово 48 или 49 в зависимости от группы).
Также напоминаю, что в рамках курса будет использоваться сайт GitHub, на котором необходимо зарегистрироваться и оставить свой логин в элементе «Аккаунт на гитхабе» на странице курса.
Полезно понимать причины поведения интерпретатора по умолчанию: вывод значений выражений выполняется функцией print, которая вызывает для своего аргумента функцию show. Последняя была определена более 20 лет назад и с тех пор практически не менялась, она заменяет все не-ASCII символы на их коды. В предлагаемом решении мы фактически подменяем функцию print в ghci, что и позволяет видеть кириллицу, а заодно и любые юникодные символы (разумеется, при наличии шрифтов) без изменений.
В задании task2-points.hs третьей лабораторной работы к определению типа Quarter необходимо добавить автоматическое порождение экземпляра класса типов Eq:
data Quarter = First | Second | Third | Fourth | Axis
deriving Eq
У меня появился вопрос по слайдам к лекции 10: зачем нужен EmptyDataDecls, если примеры работают без него? Я проверил для безопасного списка (слайд 47/55). Попытался найти что-то в руководстве к 7.10.2: но там вроде всё ещё говорят, что нужно писать. Как это объяснить?
На странице курса опубликованы общие условия для выполнения проектных заданий и открыта возможность регистрации команд. Проекты разбираются по принципу «первый пришёл — первый выбрал», выполнение одного и того же проекта разными командами не допускается.