MostlyAdequate/mostly-adequate-guide-ru
MostlyAdequate/mostly-adequate-guide-ru has 1,226 GitHub stars and 155 forks. Star changes are not measured yet. Last checked 2026-11-09 07:38 UTC. Last push 2023-05-04.
Mostly adequate guide to FP (in javascript, translated to russian)
측정된 스타 증가
- in 24h
- 업데이트 지연
- in 7 days
- 업데이트 지연
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
OriginalОб этой книге
Это книга о функциональной парадигме в целом. Мы будем использовать самый популярный в мире язык функционального программирования — JavaScript. Некоторые могут подумать, что JS — это плохой выбор, поскольку его нынешняя культура ощущается преимущественно императивной, и ФП явно ей противоречит. Тем не менее, есть основания считать, что лучше всего начинать освоение ФП именно с JS:
Вы наверняка используете его на работе каждый день.
Это значит, что вы сможете ежедневно практиковать и применять полученные знания в реальных программах, а не в хобби-проектах по вечерам и выходным, на каком-нибудь эзотерическом функциональном языке.
Вам не потребуется изучать всё от начала и до конца, прежде чем начать писать программы.
В чистом функциональном языке без понимания монад вы не сможете вывести значение переменной в консоль или обратиться к DOM-элементу. JS даёт нам возможность овладеть одними приёмами, откладывая изучение других на следующий раз, тем самым позволяя нам выполнять часть работы привычным и известным способом.
JS позволяет всё, что требуется для написания первоклассного функционального кода.
В JS есть всё необходимое, чтобы при помощи пары небольших библиотек мимикрировать под язык вроде Scala или Haskell. В настоящее время ООП доминирует в индустрии, но применять его в JavaScript ужасно неудобно — примерно как разбивать палатку на трассе или танцевать чечётку в галошах. Мы приучены повсеместно применять
bindтолько для того, чтобыthisслучайно не выскользнуло из-под нас. В нашем арсенале есть несколько костылей для того, чтобы не пострадать от случайно забытогоnew. Мы даже умеем делать приватные поля при помощи замыканий... Короче, для большинства из нас ФП будет более естественным, чем всё это ООП-барахло.
Несомненно, типизированные функциональные языки лучше подойдут для стиля, который рассматривает эта книга. JavaScript будет для нас средством изучения парадигмы, которую вы сможете применять где угодно. К счастью, функциональные интерфейсы происходят из математики, а потому они вездесущи. Вы будете чувствовать себя дома, пользуясь Swiftz, Scalaz, Haskell, PureScript и любой другой средой, основанной на математике.
Читать онлайн (на английском).
Для наилучшего впечатления, можно читать онлайн на Gitbook (на английском). Там есть:
- Боковая панель с оглавлением
- Упражнения, проверяемые прямо в браузере
Поиграть с примерами кода
Чтобы обучение было эффективным и не слишком скучным, по мере того, как я рассказываю вам очередную историю, обязательно поиграйте с приёмами, представленными в этой книге. Некоторые из них будет сложно воспринять с первого раза, их нужно потрогать своими руками (и основательно вывозиться в них), чтобы понять.
Все функции и алгебраические структуры данных, представленные в книге, собраны в приложениях. Их код также доступен в виде npm-модуля:
$ npm i @mostly-adequate/support
Кроме того, упражнения из каждой главы могут быть выполнены в вашем редакторе! Например, выполните упражнения в файлах exercise_*.js в директории exercises/ch04 и затем выполните команду:
$ npm run ch04
Скачать (на английском)
- Скачать PDF (на английском).
- Скачать EPUB (на английском).
- Скачать Mobi (Kindle) (на английском).
Собрать книгу самостоятельно
git clone https://github.com/MostlyAdequate/mostly-adequate-guide-ru.git
cd mostly-adequate-guide-ru/
npm install
npm run setup
npm run generate-pdf
npm run generate-epub
Важно! Для создания ebook-версии вам необходимо установить
ebook-convert. Инструкции.
Инструкция для Windows:
git clone https://github.com/MostlyAdequate/mostly-adequate-guide-ru.git
cd mostly-adequate-guide-ru/
npm install
npm install gitbook-cli -g
Set-ExecutionPolicy RemoteSigned (опционально) *
gitbook install
Установить [calibre](https://calibre-ebook.com/download_windows64) **
Установить переменные среды `ebook-convert` `C:\Program Files\Calibre2` ***
npm run generate-pdf
npm run generate-epub
* Снимает запрет на выполнение сторонних скриптов
** Настройки по генерации книг задаются в этой программе
*** Инструкция по установке переменых среды
Оглавление
Contributing
Переводы
FAQ
Планы на будущее
- Часть 1 (главы 1-7) посвящена основам. Она обновляется по мере обнаружения ошибок (данная книга представляет из себя черновик). Если вы можете предложить исправление — не стесняйтесь!
- Часть 2 (главы 8-13) рассматривает классы типов, начиная с функторов и монад, и заканчивая traversable. Я надеюсь втиснуть в неё трансформеры монад и аппликативные функторы.
- Часть 3 (главы 14+) начнет танец на тонкой грани между практическим программированием и академическим абсурдом. Мы рассмотрим комонады, f-алгебры, фри-монады, yoneda и другие категориальные понятия.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
관련 프로젝트 살펴보기
sindresorhus/awesome
😎 온갖 흥미로운 주제에 관한 Awesome 목록 [참고: 기존 풀 리퀘스트를 따라잡을 여유가 생길 때까지 풀 리퀘스트가 일시적으로 비활성화되어 있습니다]
534,376 스타EbookFoundation/free-programming-books
:books: 무료로 이용할 수 있는 프로그래밍 도서
401,397 스타nilbuild/developer-roadmap
개발자의 커리어 성장을 돕는 인터랙티브 로드맵, 가이드 및 기타 교육 콘텐츠.
371,688 스타vinta/awesome-python
“Python으로 X를 하고 싶은데, 어떤 도구를 써야 할까?”에 답하는 결정판 목록.
333,651 스타