Mostly adequate guide to FP (in javascript, translated in russian)
Switch branches/tags
Nothing to show
Clone or download
Latest commit 7fd13c8 May 3, 2017

README.md

Об этой книге

Эта книга рассказывает о парадигме функционального программирования в общем. Мы будем использовать самый популярный в мире функциональный язык программирования: JavaScript. Некоторые из вас могут сказать, что это не самый удачный выбор, потому что в данный момент в JavaScript преобладают императивные тенденции. Однако, я считаю, что JavaScript — это лучший способ знакомства с функциональным программированием по нескольким причинам:

  • Вы, скорее всего, и так каждый день используете его в своей работе.

    Это открывает возможность воспользоваться полученным знанием в реальных прикладных программах, в отличие от тех проектов, которые вы пишите в качестве хобби по выходным на каком-нибудь экзотическом языке.

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

    В чисто функциональном языке у вас не получится залогировать значение переменной или получить элемент DOM без использования монад. Пока мы не освоили все приёмы функционального программирования, благодаря смешанной парадигме JS, можно немного сжульничать и воспользоваться приёмами из ООП.

  • JS отлично подходит для написания первоклассного функционального кода.

    В JS у нас есть всё что нужно для имитации Scala или Haskell с помощью парочки небольших библиотек. В данный момент ООП доминирует в индустрии, но он очень неудобен в Javascript’е, примерно также, как пойти с палатками на трассу или танцевать чечётку в сапогах. Чтобы случайно не потерять контекст this, мы повсеместно используем bind. Забыли написать new? Будьте готовы к причудливым ошибкам. В JS пока что нет классов (уже есть — прим. пер.), а приватные поля доступны только через замыкания. Многие из нас считают функциональное программирование более подходящим вариантом для JS.

Учитывая всё вышесказанное, бесспорно, лучше всего для примеров из этой книги подойдут типизированные функциональные языки. JavaScript поможет нам познакомиться с подходом к программированию функционально, какой язык использовать для его применения — решать вам. К счастью, все интерфейсы математические и, посему, универсальные. Вы будете комфортно себя чувствовать, используя swiftz, haskell, purescript и другие математически-ориентированные языки.

Gitbook (на английском)

http://drboolean.gitbooks.io/mostly-adequate-guide/

EPUB (на английском)

https://www.gitbook.com/download/epub/book/drboolean/mostly-adequate-guide

Mobi (Kindle) (на английском)

https://www.gitbook.com/download/mobi/book/drboolean/mostly-adequate-guide

Вы можете сами собрать эту книгу

git clone https://github.com/MostlyAdequate/mostly-adequate-guide-ru

cd mostly-adequate-guide-ru/
npm install gitbook-cli -g
gitbook init

brew update
brew cask install calibre

gitbook mobi . ./functional.mobi

Другие языки

Содержание

Перевод названия главы будет появляться как только будет доступен перевод самой главы.

Часть 1

Часть 2