Функциональное программирование. Что почитать?
Начиная или продолжая изучать что-либо, мы интересуемся тем, а что нам бы ещё интересного и полезного об этом почитать? И вот, здесь я отвечаю на этот вопрос и привожу ссылки на наиболее интересные на мой взгляд источники информации на русском языке как о функциональном программировании вообще, так и об отдельных языках функционального программирования в частности, таких как Haskell, Scala, Elm.
Для изучающих или ещё только собирающихся изучать Haskell рекомендую в первую очередь обратиться с книге [Липовача] или пройти отличный курс [Stepic: Haskell]. А после уже можно читать в зависимости от желания и потребности. Замечу только, что в книгах Душкина довольно пространно изложена теория функционального программирования и язык и инструментарий языка Haskell. А книга [Бёрд] интересна примерами решения сложных задач на Haskell. После можно прочитать книги [Мена] и [Марлоу]. В первой даётся обзор разноплановых и сложных тем, а вторая сосредоточена на теме параллельного и конкурентного программирования на Haskell.
Для изучающих Scala – практически без вариантов (на русском языке)
[Хорстманн]. Не так давно вышло обновлённое издание [Одерски].
Об Elm книг на русском языке ещё нет. Но готовится к печати на английском.
Книги
Основные
Haskell
-
[Бёрд] Бёрд Р. Жемчужины проектирования алгоритмов. Функциональный подход. – Пер. с англ. – М.: ДМК Пресс, 2013. – 330 с.
-
[Душкин: ФП] Душкин Р.В. Функциональное программирование на языке Haskell. – М.: ДМК Пресс, 2007. – 608 с., ил.
-
[Душкин: Справочник] Душкин Р.В. Справочник по языку Haskell. – М.: ДМК Пресс, 2008. – 544 с., ил.
-
[Душкин: Практика работы] Душкин Р.В. Практика работы на языке Haskell. – М.: ДМК Пресс, 2009. – 288 с., ил.
-
[Душкин: 14 эссе] Душкин Р.В. 14 занимательных эссе о языке Haskell и функциональном программировании. – М.: ДМК Пресс, 2011. – 140 с., ил.
-
[Липовача] Липовача М. Изучай Haskell во имя добра! – Пер. с англ. – М.: ДМК Пресс, 2012. – 490 с.
-
[Марлоу] Марлоу С. Параллельное и конкурентное программирование на языке Haskell: Пер. с англ. – М.: ДМК Пресс, 2014. – 372 с.
-
[Мена] Мена Алехандро С. Изучаем Haskell. – СПб.: Питер, 2015. – 464 с.
Scala
-
[Одерски] Одерски М., Спун Л. Scala. Профессиональное программирование. – 3-е изд. – СПб.: Питер, 2018. – 688 с.
-
[Хорстманн] Хорстманн К. Scala для нетерпеливых. – Пер. с англ. – М.: ДМК Пресс, 2013. – 408 с.
F#
- [Сошников] Сошников Д.В. Функциональное программирование на F#. – М.: ДМК Пресс, 2011. – 192 с.
Дополнительные
-
[Филд, Харрисон] Филд А., Харрисон П. Функциональное программирование: Пер. c англ. – М.: Мир, 1993. – 637 с., ил.
-
[Хендерсон] Хендерсон П. Функциональное программирование. Применение и реализация. - Пер. с англ. - М.: Мир, 1983. - 349 с.
Интернет-ресурсы
Книги
Haskell
-
Функциональное программирование на языке Haskell. Онлайн-курс на Stepic ->
-
Шевченко Д. О Haskell по-человечески (для обыкновенных программистов) - https://www.ohaskell.guide/
-
Холомьёв А. Учебник по Haskell ->
-
Липовача М. Изучай Haskell во имя добра! - Пер. с англ. ->
-
Душкин Р.В. Функциональное программирование на языке Haskell ->
-
Душкин Р.В. Справочник по языку Haskell ->
-
Душкин Р.В. Другие 14 эссе о языке Haskell и функциональном программировании — серьёзные ->
-
Описание языка Haskell 98 – http://www.haskell.ru/
-
Мягкое введение в Haskell ->
-
Бананы и линзы. Подкаст о Haskell – http://bananasandlenses.net/
-
Русскоязычное сообщество Haskell-разработчиков – http://ruhaskell.org/
Scala
- [Scala] Вестсайд Д. Путеводитель неофита по Scala (перевод) - https://github.com/anton-k/ru-neophyte-guide-to-scala
Elm
- Feldman R. Elm in Action. – Manning, 2020. – 375 p.
Erlang
-
Чезарини Ф., Томпсон С. Программирование в Erlang = Erlang Programming. — М.: ДМК Пресс, 2012. — 488 с.
-
Чезарини Ф., Виноски С. Проектирование масштабируемых систем с помощью Erlang/OTP. — Пер. с англ. — М.: ДМК Пресс, 2017. — 486 с.
-
Хеберт Ф. Изучай Erlang во имя добра! = Learn You Some Erlang for Great Good!. — М.: ДМК Пресс, 2015. — 686 с.
Ресурсы и сообщества
-
Haskell Wiki – https://wiki.haskell.org/Haskell
-
Haskell Platform - https://www.haskell.org/platform/
-
Leksah – http://www.leksah.org/
-
GNU Emacs – https://www.gnu.org/software/emacs/
-
Haskell-Mode - https://github.com/haskell/haskell-mode
-
Бананы и линзы. Подкаст о Haskell – https://bananasandlenses.net
-
Русскоязычное сообщество Haskell-разработчиков – https://ruhaskell.org
-
Scala - https://www.scala-lang.org
-
IntelliJ IDEA - https://www.jetbrains.com/idea
-
Scala Plugin for IntelliJ IDEA - http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA
-
Elm - https://elm-lang.org
-
Русскоязычное сообщество разработчиков на языке Elm - https://vk.com/elm_lang_ru
Онлайн-курсы
-
[Stepic: Haskell1] Функциональное программирование на языке Haskell – https://stepik.org/course/75
-
[Stepic: Haskell2] Функциональное программирование на языке Haskell – https://stepik.org/course/693
-
[Coursera: Scala1] Принципы функционального программирования в Scala (Functional Programming Principles in Scala) – https://www.coursera.org/learn/progfun1
-
[Coursera: Scala2] Principles of Reactive Programming – https://www.coursera.org/course/reactive – Недоступно.
-
[Twitter] Scala Школа! - https://twitter.github.io/scala_school/ru/
-
[ИНТУИТ] Городняя Л.В. Основы функционального программирования – https://www.intuit.ru/studies/courses/29/29/info
-
[ИНТУИТ] Simon-Peyton Jones. Язык и библиотеки Haskell 98 – https://www.intuit.ru/studies/courses/1174/233/info
-
[ИНТУИТ] Сошников Д. Функциональное программирование – https://www.intuit.ru/studies/courses/471/327/info
-
[ИНТУИТ] Зыков С. Введение в теорию программирования. Функциональный подход – https://www.intuit.ru/studies/courses/39/39/info
Публикации
-
Симоненко Евгений. Инструменты разработчика на языке Elm – https://habr.com/ru/post/347730/
-
Симоненко Евгений. Основы разработки на языке Elm (руководство по инструментарию для начинающих) https://habrahabr.ru/post/302154/
-
Практика функционального программирования – http://fprog.ru/
-
Обзор литературы по функциональному программированию – http://alexott.net/ru/fp/books/
-
[Хабрахабр] Бектимиров М. Разработка приложений на языке Scala - http://habrahabr.ru/post/128511/
-
[Хабрахабр] Галако О. О Scala для тех, кому мало Java, и не только - http://habrahabr.ru/post/99347/
-
[Хабрахабр] Scala. Введение - http://habrahabr.ru/post/77750/
-
[Хабрахабр] Scala как расширенная Java или Java++ - http://habrahabr.ru/post/152815/
-
[Хабрахабр] Мигутский А. Основы Scala. 5 часов поедания мозгов - http://habrahabr.ru/post/209532/
-
[Хабрахабр] Scala. Всем выйти из сумрака! - http://habrahabr.ru/post/209850/
-
[Хабрахабр] Martin Odersky. Проблемы сложности Scala (перевод) - http://habrahabr.ru/post/133347/
-
[Хабрахабр] Реактивный манифест (перевод) - http://habrahabr.ru/post/195562/
-
Блог программиста - https://pro-prof.com/
История обновлений
- 2020-04-05. Добавлены новые издения. Проверены и исправлены ссылки.
- 2017-06-10. Добавлена книга по Erlang/OTP, исправлен вводный текст, переформатированы списки.
- 2016-06-07. Добавил ещё одну книгу по Haskell ([Мена]) и информацию об Elm.
- 2016-04-16. Прошло три года, кое-что изменилось.
- 2014-04-23. Добавлены новые книги и курсы.
- 2014-03-09. Добавлены новые книги, публикации и онлайн-курсы. Убраны очевидные ссылки на Wikipedia.
(c) Симоненко Евгений, 2013-2020