Skip to content

Latest commit

 

History

History
125 lines (85 loc) · 8.2 KB

theoretical-task.md

File metadata and controls

125 lines (85 loc) · 8.2 KB

Первое задание: теория

Установка ПО

Рекомендуем установить Haskell Stack и все упражнения запускать в нем.

  • установка для Windows:

    • имя вашего пользователя Windows должно содержать только латинские буквы и цифры, никаких пробелов. В противном случае создайте нового пользователя-администратора с подходящим именем, например, admin, и продолжайте установку из него. Переименование юзера не годится, нужно создать нового.

    • используйте установщик, минимальная версия системы - Windows 7 64-разрядная.

  • установка для Linux & Mac OS X: установите по инструкции или поставьте нужный пакет (stack или haskell-stack) через пакетный менеджер вашей ОС (apt, yum, brew и т.п.). Версия на сайте более свежая.

Больше ничего устанавливать не требуется, никаких Haskell Platform, ghcup, ghc, cabal. Stack самостоятельно скачает и установит компилятор и библиотеки.

Как запустить: откройте консоль (командную строку) и наберите команду stack repl - запустится интерпретатор выражений Haskell. В первый раз придется подождать, пока загрузится и установится компилятор. Если установка выполнена правильно, отобразится подсказка ко вводу:

Prelude> _

Базовая подготовка

Более сложная теория

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

  • Обязательно: системное описание почти всех самых популярных тайпклассов — Typeclassopedia.

  • Обязательно: учебник чуть более глубоко описывающий Haskell — https://anton-k.github.io/ru-haskell-book/book/home.html.

    Позволяет понять многие теоретические моменты. Обязательны к прочтению главы 1-9, остальные по желанию.

  • Обязательно: видео-курс на степик от Дениса Москвина.

    https://stepik.org/course/75/ — первая часть курса, очень системный и развернутый материал по Haskell. Она обязательна к изучению.

    https://stepik.org/course/693/ - 2-я часть курса, она уже необязательна. Материал тут достаточно сложный, его рекомендуем изучать после того, как сделаны первые версии бота и сервера, чтобы закрепить полученные на практике знания и расширить/углубить их.

  • Очень рекомендуется: книга для начинающих с хорошим практическим уклоном Get Programming with Haskell (W. Kurt).

    Т.к. эта книга не доступна бесплатно, мы не включили её в обязательную часть, но очень рекомендуем. Здесь есть очень приближенные к реальным задачи, с помощью которых вы можете быстро и эффективно начать писать свои приложения, вроде бота. Книга максимально свежая и актуальная, хорошо написана. Практика показала, что изучающие её в рамках нашей программы потом её активно хвалили :)

  • По желанию: сделать упражнения из глав Real World Haskell, которые помогут освоиться с приближенными к реальным задачам.

  • По желанию: часто рекомендуемая многими новичками книга http://haskellbook.com/.

  • По желанию: видео-курс от Николая Кудасова.

  • По желанию: Write Yourself a Scheme in 48 Hours.

    Упражнение по написанию простого интерпретатора для языка Scheme (язык, с которого был слизан JavaScript). https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours.

    Есть так же перевод на русский (там могут быть не все части или неактуальные данные): https://ru.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours.

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

  • Выводы и ссылки на рецензии о современных книгах по Haskell.

  • Статьи по различным темам, которые могут оказаться полезными для понимания того или иного материала