Được TopGit lập chỉ mục từ metadata GitHub: MostlyAdequate/mostly-adequate-guide có 23.8k sao, viết chủ yếu bằng JavaScript. Mostly adequate guide to FP (in javascript)
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
This is a book on the functional paradigm in general. We'll use the world's most popular functional programming language: JavaScript. Some may feel this is a poor choice as it's against the grain of the current culture which, at the moment, feels predominately imperative. However, I believe it is the best way to learn FP for several reasons:
You likely use it every day at work.
This makes it possible to practice and apply your acquired knowledge each day on real world programs rather than pet projects on nights and weekends in an esoteric FP language.
We don't have to learn everything up front to start writing programs.
In a pure functional language, you cannot log a variable or read a DOM node without using monads. Here we can cheat a little as we learn to purify our codebase. It's also easier to get started in this language since it's mixed paradigm and you can fall back on your current practices while there are gaps in your knowledge.
The language is fully capable of writing top notch functional code.
We have all the features we need to mimic a language like Scala or Haskell with the help of a tiny library or two. Object-oriented programming currently dominates the industry, but it's clearly awkward in JavaScript. It's akin to camping off of a highway or tap dancing in galoshes. We have to bind all over the place lest this change out from under us, we have various work arounds for the quirky behavior when the new keyword is forgotten, private members are only available via closures. To a lot of us, FP feels more natural anyways.
That said, typed functional languages will, without a doubt, be the best place to code in the style presented by this book. JavaScript will be our means of learning a paradigm, where you apply it is up to you. Luckily, the interfaces are mathematical and, as such, ubiquitous. You'll find yourself at home with Swiftz, Scalaz, Haskell, PureScript, and other mathematically inclined environments.
Read it Online
For a best reading experience, read it online via Gitbook.
Quick-access side-bar
In-browser exercises
In-depth examples
Play Around with Code
To make the training efficient and not get too bored while I am telling you another story, make sure to play around with the concepts introduced in this book. Some can be tricky to catch at first and are better understood by getting your hands dirty.
All functions and algebraic data-structures presented in the book are gathered in the appendixes. The corresponding code is also available as an npm module:
$ npm i @mostly-adequate/support
Alternatively, exercises of each chapter are runnable and can be completed in your editor! For example, complete the exercise_*.js in exercises/ch04 and then run:
$ npm run ch04
Download it
Find pre-generated PDF and EPUB as build artifacts of the latest release.
Do it yourself
⚠️ This project setup is now a bit old and thus, you may run into various issues when building this locally. We recommend to use node v10.22.1 and the latest version of Calibre if possible.
About the nodejs version
As the recommended node version (v10.22.1) is a bit old now, is more than likely that you do not have it installed on your system. You can have multiple versions of nodejs installed on your system using nvm. Refer to that project to install it and then you will be able to:
Install any node version that you need:
nvm install 10.22.1
nvm install 20.2.0
Then you will be able to switch between node versions:
nvm use 10.22.1
node -v // will show v10.22.1
nvm use 20.2.0
node -v // will show v20.2.0
As this project has a .nvmrc file you can call nvm install and nvm use without specifying the node version:
// being anywhere inside this project
nvm install
node -v // will show v10.22.1
Complete sequence of commands
Considering the above about having nvm installed on your system, here is the complete sequence of commands to generate pdf and epub files by yourself:
git clone https://github.com/MostlyAdequate/mostly-adequate-guide.git
cd mostly-adequate-guide/
nvm install
npm install
npm run setup
npm run generate-pdf
npm run generate-epub
Note! To generate the ebook version you will need to install ebook-convert. Installation instructions.
Table of Contents
See SUMMARY.md
Contributing
See CONTRIBUTING.md
Translations
See TRANSLATIONS.md
FAQ
See FAQ.md
Plans for the future
Part 1 (chapters 1-7) is a guide to the basics. I'm updating as I find errors since this is the initial draft. Feel free to help!
Part 2 (chapters 8-13) address type classes like functors and monads all the way through to traversable. I hope to squeeze in transformers and a pure application.
Part 3 (chapters 14+) will start to dance the fine line between practical programming and academic absurdity. We'll look at comonads, f-algebras, free monads, yoneda, and other categorical constructs.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
MostlyAdequate/mostly-adequate-guide thuộc nhóm Frontend trên TopGit, cùng 4 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về MostlyAdequate/mostly-adequate-guide ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/MostlyAdequate/mostly-adequate-guide là nguồn chính thức.
MostlyAdequate/mostly-adequate-guide có bao nhiêu sao?
MostlyAdequate/mostly-adequate-guide có 23.8k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/MostlyAdequate/mostly-adequate-guide. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
MostlyAdequate/mostly-adequate-guide có phải mã nguồn mở không?
TopGit chưa ghi nhận license cho MostlyAdequate/mostly-adequate-guide. Phần lớn repo public trên GitHub là mã nguồn mở, nhưng điều khoản khác nhau từng repo — mở file LICENSE để xác nhận.
MostlyAdequate/mostly-adequate-guide còn đang phát triển không?
Commit gần nhất trên MostlyAdequate/mostly-adequate-guide là 1.9 năm trước (theo timestamp GitHub). Repo có 1.9k fork — một chỉ báo về mức độ quan tâm của cộng đồng.
MostlyAdequate/mostly-adequate-guide là gì?
MostlyAdequate/mostly-adequate-guide (MostlyAdequate/mostly-adequate-guide) là dự án JavaScript trên GitHub. Theo mô tả gốc: Mostly adequate guide to FP (in javascript)
MostlyAdequate/mostly-adequate-guide viết bằng ngôn ngữ gì?
MostlyAdequate/mostly-adequate-guide chủ yếu viết bằng JavaScript. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc mostly-adequate-guide có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về mostly-adequate-guide.