Haskell 23: различия между версиями
Перейти к навигации
Перейти к поиску
TurtlePU (обсуждение | вклад) Новая страница: «== Промышленное программирование на Haskell == Весенний курс по выбору для студентов 4 курса…» |
TurtlePU (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
== Промышленное программирование на Haskell == | == Промышленное программирование на Haskell == | ||
Весенний курс по выбору для студентов 4 курса ФКН ВШЭ. | Весенний курс по выбору для студентов 4 курса ФКН ВШЭ. | ||
'''Лектор, семинарист''': Соколов Павел Павлович | |||
=== Ссылки === | |||
Канал в телеграм: https://t.me/+Is4I3YPaBWk3NjIy | |||
Чат в телеграм: https://t.me/+lcim6Ukmojc5ZGUy | |||
Записи лекций и семинаров: https://www.youtube.com/playlist?list=PLn8rjO6vyaY-UKMLisT-ncNhHufQ-_e_p | |||
Таблица с оценками: TBD | |||
== Setting up == | |||
<ol> | |||
<li>Если вы пользуетесь Windows, установите WSL2, если ещё не.</li> | |||
<li> | |||
Установите [https://www.haskell.org/ghcup/ ghcup] — скачайте [https://downloads.haskell.org/~ghcup/ бинарный файл] сами | |||
либо введите одну любимую команду: | |||
<ul> | |||
<li> '''MacOS''': <pre>brew install ghcup</pre></li> | |||
<li> '''Arch'''-based distros: <pre>yay -S ghcup-hs-bin</pre></li> | |||
<li> '''WSL2''', '''MacOS''' >= 10.13, '''Linux''': <pre>curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh</pre></li> | |||
<li> '''Windows Powershell''' (cringe): Команда доступна по [https://www.haskell.org/ghcup/install/#installation ссылке]</li> | |||
</ul> | |||
</li> | |||
<li>Убедитесь, что путь до места установки <code>ghcup</code> содержится в <code>$PATH</code> — запустите <code>ghcup list</code>.</li> | |||
<li> | |||
Установите '''<code style="background-color:black;color:rgb(0,255,0)">recommended</code>''' версии компилятора, пакетного менеджера и языкового сервера:<pre> | |||
ghcup install ghc recommended | |||
ghcup install cabal recommended | |||
ghcup install hls recommended</pre> | |||
</li> | |||
<li>Убедитесь, что путь <code>~/.ghcup/bin</code> содержится в <code>$PATH</code>. При необходимости добавьте этот путь сами.</li> | |||
<li> | |||
Создайте символические ссылки на установленные версии программ:<pre> | |||
ghcup set ghc recommended | |||
ghcup set cabal recommended | |||
ghcup set hls recommended</pre> | |||
</li> | |||
<li> | |||
Настройте LSP client в своей любимой среде разработки: | |||
<ul> | |||
<li>Для '''VS Code''' есть [https://github.com/haskell/vscode-haskell плагин]. Настройка: TBD</li> | |||
<li>В '''NeoVim''' настройте [https://github.com/neovim/nvim-lspconfig nvim-lspconfig], он знает про HLS.</li> | |||
<li>Инструкцию для других сред можно найти [https://haskell-language-server.readthedocs.io/en/latest/configuration.html#configuring-your-editor здесь].</li> | |||
</ul> | |||
</li> | |||
<li>Опционально — установите [https://hoogle.haskell.org Hoogle] локально: | |||
<ol> | |||
<li><code>cabal install hoogle</code></li> | |||
<li> | |||
Допишите в файл <code>~/.ghci</code> следующее:<pre> | |||
:def hoogle \x -> return $ ":!hoogle \"" ++ x ++ "\"" | |||
:def hdoc \x -> return $ ":!hoogle --info \"" ++ x ++ "\""</pre> | |||
</li> | |||
<li>Теперь можно пользоваться Hoogle прямо из ghci с помощью команд <code>:hoogle</code> и <code>:hdoc</code></li> | |||
</ol> | |||
</li> | |||
</ol> | |||
== План курса == | |||
=== Лекции, семинары === | |||
# [https://youtu.be/uLKF3g4SaVw Лекция]: начало курса; где используется Haskell. [https://youtu.be/vGa5U2XpXWQ Семинар]: рекап курса по Функциональному программированию. | |||
=== Домашние задания === | |||
Практические задания по пройденным темам в виде мини-проектов cabal. За каждое домашнее задание можно получить до 12 баллов. | |||
{| class="wikitable" | |||
|- | |||
! Тема !! Сроки !! Ссылка | |||
|- | |||
| TBA || 22.01 - 05.02 || | |||
|- | |||
| TBA || 05.02 - 19.02 || | |||
|- | |||
| TBA || 19.02 - 05.03 || | |||
|- | |||
| TBA || 05.03 - 19.03 || | |||
|} | |||
=== Проект === | |||
TBA | |||
=== Оценивание === | |||
Итог = Округление(min(10, 0.64 * ДЗ + 0.36 * ПР)), | |||
где ДЗ – средняя оценка за все домашние задания, ПР – оценка за проектную работу. | |||
Округление арифметическое. | |||
== Дополнительная литература == | |||
* Will Kurt – Get Programming with Haskell | |||
* Bryan O'Sullivan, Don Stewart, John Goerzen – Real World Haskell | |||
* Alexander Granin – Functional Design and Architecture | |||
* Sandy Maguire – Algebra-Driven Design | |||
== Преподаватели == | == Преподаватели == | ||
Лектор и семинарист: Павел Соколов aka [https://t.me/TurtlePU @TurtlePU]. | Лектор и семинарист: Павел Соколов aka [https://t.me/TurtlePU @TurtlePU]. | ||
Версия от 14:30, 17 января 2023
Промышленное программирование на Haskell
Весенний курс по выбору для студентов 4 курса ФКН ВШЭ.
Лектор, семинарист: Соколов Павел Павлович
Ссылки
Канал в телеграм: https://t.me/+Is4I3YPaBWk3NjIy
Чат в телеграм: https://t.me/+lcim6Ukmojc5ZGUy
Записи лекций и семинаров: https://www.youtube.com/playlist?list=PLn8rjO6vyaY-UKMLisT-ncNhHufQ-_e_p
Таблица с оценками: TBD
Setting up
- Если вы пользуетесь Windows, установите WSL2, если ещё не.
-
Установите 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): Команда доступна по ссылке
- MacOS:
- Убедитесь, что путь до места установки
ghcupсодержится в$PATH— запуститеghcup list. -
Установите
recommendedверсии компилятора, пакетного менеджера и языкового сервера:ghcup install ghc recommended ghcup install cabal recommended ghcup install hls recommended
- Убедитесь, что путь
~/.ghcup/binсодержится в$PATH. При необходимости добавьте этот путь сами. -
Создайте символические ссылки на установленные версии программ:
ghcup set ghc recommended ghcup set cabal recommended ghcup set hls recommended
-
Настройте LSP client в своей любимой среде разработки:
- Для VS Code есть плагин. Настройка: TBD
- В NeoVim настройте nvim-lspconfig, он знает про HLS.
- Инструкцию для других сред можно найти здесь.
- Опционально — установите Hoogle локально:
cabal install hoogle-
Допишите в файл
~/.ghciследующее::def hoogle \x -> return $ ":!hoogle \"" ++ x ++ "\"" :def hdoc \x -> return $ ":!hoogle --info \"" ++ x ++ "\""
- Теперь можно пользоваться Hoogle прямо из ghci с помощью команд
:hoogleи:hdoc
План курса
Лекции, семинары
- Лекция: начало курса; где используется Haskell. Семинар: рекап курса по Функциональному программированию.
Домашние задания
Практические задания по пройденным темам в виде мини-проектов cabal. За каждое домашнее задание можно получить до 12 баллов.
| Тема | Сроки | Ссылка |
|---|---|---|
| TBA | 22.01 - 05.02 | |
| TBA | 05.02 - 19.02 | |
| TBA | 19.02 - 05.03 | |
| TBA | 05.03 - 19.03 |
Проект
TBA
Оценивание
Итог = Округление(min(10, 0.64 * ДЗ + 0.36 * ПР)),
где ДЗ – средняя оценка за все домашние задания, ПР – оценка за проектную работу.
Округление арифметическое.
Дополнительная литература
- Will Kurt – Get Programming with Haskell
- Bryan O'Sullivan, Don Stewart, John Goerzen – Real World Haskell
- Alexander Granin – Functional Design and Architecture
- Sandy Maguire – Algebra-Driven Design
Преподаватели
Лектор и семинарист: Павел Соколов aka @TurtlePU.