Функциональное программирование 24-25 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Индивидуальный проект)
(Оценки)
Строка 245: Строка 245:
  
 
== Оценки ==
 
== Оценки ==
 
+
<!--
 
Итоговая оценка получается так:
 
Итоговая оценка получается так:
  
Строка 251: Строка 251:
  
 
Округление производится к ближайшему целому, притом что полуцелые значения округляются вверх.
 
Округление производится к ближайшему целому, притом что полуцелые значения округляются вверх.
 +
-->

Версия 02:37, 10 сентября 2024

Функциональное программирование

Курс по выбору для студентов 3 и 4 курса ФКН ВШЭ, 1 и 2 модуль 2024 г. Функциональное программирование (ФП) представляет собой теоретически изящный, выдержавший проверку временем на практике и оказавший заметное влияние на технологии программирования вообще подход к созданию ПО. Курс посвящен основам ФП в целом и популярного языка Haskell в частности. Попутно сообщаются начальные сведения из области лямбда-исчислений, теории типов, теории категорий.

Преподаватели

Лектор и семинарист: Евгений Дашков, ТГ: @edashkov, edashkov@gmail.com.

Семинарист: Павел Соколов, ТГ: @TurtlePU.

Учебный ассистент: Ислам Талипов, ТГ: @lishy2.

Текущая успеваемость

[Таблица].

Setting up

  1. Если вы пользуетесь Windows, установите WSL2, если ещё не.
  2. Установите ghcup — скачайте бинарный файл сами либо введите одну любимую команду:
    • MacOS:
      brew install ghcup
    • Arch-based distros:
      yay -S ghcup-hs-bin
    • WSL2, MacOS >= 10.13, Linux:
      curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
    • Windows Powershell (cringe): Команда доступна по ссылке
  3. Убедитесь, что путь до места установки ghcup содержится в $PATH — запустите ghcup list.
  4. Установите recommended версии компилятора, пакетного менеджера и языкового сервера:
    ghcup install ghc recommended
    ghcup install cabal recommended
    ghcup install hls recommended
  5. Убедитесь, что путь ~/.ghcup/bin содержится в $PATH. При необходимости добавьте этот путь сами.
  6. Создайте символические ссылки на установленные версии программ:
    ghcup set ghc recommended
    ghcup set cabal recommended
    ghcup set hls recommended
  7. Настройте LSP client в своей любимой среде разработки:
    • Для VS Code есть плагин, он должен обнаружить HLS самостоятельно.
    • В NeoVim настройте nvim-lspconfig, он знает про HLS.
    • Инструкцию для других сред можно найти здесь.
  8. Опционально — установите Hoogle локально:
    1. cabal install hoogle
    2. Допишите в файл ~/.ghci следующее:
      :def hoogle \x -> return $ ":!hoogle \"" ++ x ++ "\""
      :def hdoc \x -> return $ ":!hoogle --info \"" ++ x ++ "\""
    3. Теперь можно пользоваться Hoogle прямо из ghci с помощью команд :hoogle и :hdoc

Листки и код для семинаров

Домашние задания

Контрольная работа

Итоговый экзамен

Самостоятельная работа (мини-проект)

Материалы

Группа слушателей курса в ТГ

Материалы Е.В. Дашкова

Записи лекций Е. В. Дашкова в МФТИ

Базовые ресурсы

Сайт языка

Haskell Tool Stack

Информация про Cabal

Hoogle

Hackage

Стандартная библиотека языка Haskell на Hackage

Книги и статьи

Learn You a Haskell for Great Good

Real World Haskell

Basic Simple Type Theory

Lectures on the Curry-Howard Isomorphism

Purely Functional Data Structures.

Нет в открытом доступе

Programming in Haskell by Graham Hutton

Basic Category Theory for Computer Scientists by Benjamin C. Pierce

Оценки