Skip to content

tatomyr/mostly-adequate-guide-uk

 
 

Repository files navigation

cover

Про цю книгу

Ця книга розповідає про парадигму функціонального програмування вцілому. Ми будемо використовувати найбільш популярну у Світі функціональну мову програмування: JavaScript. Комусь може здатись, що це не найкращий вибір, оскільки в даний момент у світі JavaScript переважає імперативність. Проте, я переконаний, що це найкращий спосіб вивчити FP(функціональне програмування) з декількох причин:

  • Ви, вірогідніше за все, щоденно використовуєте його у роботі.

    Це дає можливість тренуватись і використовувати на практиці отримані знання кожен день у реальних програмах, а не на власних пет-проектах у нічний час та вихідні дні за допомогою езотеричної ФП мови.

  • Вам не потрібно вивчати все, для того, щоб почати писати програми.

    У чистих функціональних мовах програмування ви не можете залогіювати змінну чи отримати вузол DOM без використання монад. Тут ми можемо трохи хитрувати, оскільки ми вчимося очищати нашу кодову базу. Тут також легше розпочати, оскільки JavaScript використовує змішану парадигму, тож ви в будь-який момент зможете підстрахувати себе у разі того, коли вам бракуватиме знаннь.

  • Мова JavaScript надає змогу писати пречудовий функціональний код.

    У нас є всі можливості які нам потрібні для імітації таких мов як Scala чи Haskell, за допомогою однієї чи двух бібліотек. Об'єктно-орієнтоване програмування наразі домінує в індустрії, але воно точно незручне у JavaScript. Це нагадує похід по шосе або танок у галошах. Ми змушені повсюди використовувати bind, щоб не загубити десь this, у нас до сих пір немає класів(щоправда нещодавно в ES6 було внесено трохи синтаксичного цукру), ми можемо отримати численне різноманіття багів та дивакувату поведінку нашого коду, коли ми забуваємо вжити ключове слово new, приватні поля доступні нам лише через замикання. Багато хто з нас відчуває, що функціональне програмування є більш прийнятним рішенням.

Тим не менш, типізовані мови функціонального програмування будуть, без жодного сумніву, кращим місцем щоб кодити у стилі, який виклажається у цій книзі. JavaScript буде нашим засобом вивчення парадигми функціонального програмування, а от де ви будете його використовувати - залежить від вас. На щастя, інтерфейси математичні, а тому можуть бути використані будь-де. Ви будете комфортно себе почувати використовуючі такі математично-орієнтовані мови як swiftz, scalaz, haskell, purescript та інші.

Gitbook (для більшої зручності)

Зберіть цю книгу самостійно

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

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

brew update
brew install Caskroom/cask/calibre

gitbook mobi . ./functional.mobi

Зміст

Дивіться SUMMARY.md

Сприяння

Дивіться CONTRIBUTING.md

Переклади

Дивіться TRANSLATIONS.md

FAQ (Найчастіші запитання)

Дивіться FAQ.md

Плани на майбутнє

  • Частина 1 (на данний момент це частини 1-7) це керівнитство з основ. Я оновлююсь одразу як тільки знаходжу помилки, оскільки це початкова чернетка. Почувайте себе вільно та допомагайте!
  • Частина 2 (на данний момент частини 8+) будуть звертатись до типових класів, таких як функтори та монади і аж до traversable. Сподіваюсь втиснутись у трансформери та pure application.
  • Частина 3 почне балансувати на межі прикладного програмування та академічного абсурду. Ми розглянемо комонади, f-алгебри, вільні монади, yoneda та інші categorical constructs.

About

Mostly adequate guide to FP (in javascript, translated in ukrainian)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.4%
  • HTML 0.6%