Главная / Курсы / Haskell / Переход на новый уровень!
# Глава 24. Переход на новый уровень! На протяжении первой части курса вы оттачивали навыки функционального программирования в online IDE. Устанавливать Haskell у себя локально не было необходимости. Теперь же вы погрузитесь в более сложные темы и наверняка захотите поэкспериментировать с Haskell локально. ## Установка Haskell Как вы [помните,](/courses/haskell/chapters/haskell_chapter_0020#block-stack) самый удобный способ работы с Haskell — это [The Haskell Tool Stack.](https://docs.haskellstack.org/en/stable/) Утилита `stack` умеет разворачивать всю необходимую инфраструктуру, компилировать проекты, запускать тесты и бенчмарки, устанавливать зависимости. Установим `stack`. Идём [сюда](https://docs.haskellstack.org/en/stable/install_and_upgrade/) и забираем нужную нам версию. Общий Unix-вариант установки предельно прост: ```shell curl -sSL https://get.haskellstack.org/ | sh ``` Готово. После установки нам будет доступна команда `stack`, и она — наше всё. Вместо установки на целевую машину вы можете воспользоваться [официальным docker-образом](https://hub.docker.com/_/haskell/) с Docker Hub: ```shell docker pull haskell ``` ## IDE У языка Haskell нет своей специализированной IDE. Зато есть [HLS](https://haskell-language-server.readthedocs.io/en/stable/index.html) (Haskell Language Server) — [опенсорсный](https://github.com/haskell/haskell-language-server) написанный на самом Haskell проект, реализующий [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP). LSP — это протокол взаимодействия между IDE и языковым сервером, предоставляющим такие возможности как автокомплит, переход к определению функции, поиск использований и т.д. На базе HLS и строятся плагины для Haskell под различные IDE и редакторы кода. Например, под [VS Code](https://code.visualstudio.com/) пользуется популярностью [расширение для Haskell.](https://marketplace.visualstudio.com/items?itemName=haskell.haskell) Помимо VS Code разработчики на Haskell используют такие редакторы как [Vim,](https://www.vim.org/) [Emacs,](https://www.gnu.org/software/emacs/) [Sublime Text.](https://www.sublimetext.com/) ## Что почитать, посмотреть, послушать Типичное становление хаскелиста заключается в прочтении двух книг: - «Learn You a Haskell for Great Good!», автор Miran Lipovača. - «Real World Haskell», авторы: Bryan O'Sullivan, Don Stewart, John Goerzen. Любителям подкастов и видео с конференций горячо рекомендуются: - Выпуск подкаста Подлодка [«Функциональное программирование».](https://podlodka.io/44) Гость выпуска — Денис Шевченко. - Доклад [«Не морочьте мне голову со своим функциональным программированием»](https://www.youtube.com/watch?v=mmvHC3UgYmg) от Виталия Брагилевского на Apps Conf Moscow. ## Что дальше? Первая часть этого курса была составлена по замечательной [книге](https://www.ohaskell.guide/) Дениса Шевченко «О Haskell по-человечески». Команда проекта Senior Junior добавила задачи, в паре мест обновила и расширила теорию. Уважаемое комьюнити хаскелистов провело ревью наших правок, за что мы крайне признательны. К сожалению, работа над книгой Дениса заморожена. В ней не рассказано о пригоршне культовых концепций языка. Тех самых, о которых все слышали, но мало кто применял. Про них вы узнаете во втрой части курса! Следующие главы взяты из [книги](https://anton-k.github.io/ru-haskell-book/book/home.html) «Учебник по Haskell» Антона Холомьева. За добавление задач и адаптацию теории спасибо Дмитрию Чурину! Вас ждут полугруппы, моноиды, монады и другие страшные слова, которые способствовали сгущению вокруг Haskell мистического ореола. Скажем заранее: за каждым из них стоит приземленная и практичная вещь. И не нужно быть архимагистром секретного ордена, чтобы вкусить ее полезность. Более того, разработчики по всему миру, включая джунов, вовсю применяют эти концепции в повседневной работе. Правда, сами того не подозревая. Да-да, многие фичи Haskell надежно обосновались в Kotlin, Rust, Swift, JavaScript, Python и остальных мейнстримовых языках. Поэтому вторая часть курса поможет вам не только лучше узнать Haskell, но и по-новому взглянуть на уже известные вам языки.
Отправка...
Наша группа в telegram. Здесь можно задавать вопросы и общаться.
Задонатить. Если вам нравится курс, вы можете поддержать развитие площадки!