A book about functional programming in JavaScript. @FLJSBook on twitter.
Clone or download
Pull request Compare This branch is 83 commits behind getify:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ch11-code
CONTRIBUTING.md
ISSUE_TEMPLATE.md
LICENSE.txt
PULL_REQUEST_TEMPLATE.md
README.md
apA.md
apB.md
apC.md
ch1.md
ch10.md
ch11.md
ch2.md
ch3.md
ch4.md
ch5.md
ch6.md
ch7.md
ch8.md
ch9.md
fig1.png
fig10.png
fig10.svg
fig11.png
fig11.svg
fig12.png
fig12.svg
fig13.png
fig13.svg
fig14.png
fig14.svg
fig15.png
fig15.svg
fig16.png
fig16.svg
fig17.png
fig17.svg
fig18.png
fig18.svg
fig19.png
fig19.svg
fig2.png
fig2.svg
fig3.png
fig3.svg
fig4.png
fig4.svg
fig5.png
fig5.svg
fig6.png
fig6.svg
fig7.png
fig8.png
fig8.svg
fig9.png
fig9.svg
foreword.md
preface.md
toc.md

README.md

Functional-Light JavaScript (book)

This book explores the core principles of functional programming (FP) as they are applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript.

Note: Despite the word "Light" in the title, I do not consider or recommend this book as a "beginner", "easy", or "intro" book on the topic. This book is rigorous and full of gritty detail; it expects a solid foundation of JS knowledge before diving in. "Light" means limited in scope; instead of being more broad, this book goes much deeper into each topic than you typically find in other FP-JavaScript books.

Let's face it: unless you're already a member of the FP cool kids club (I'm not!), a statement like, "a monad is just a monoid in the category of endofunctors", just doesn't mean anything useful to us.

That's not to say the terms are meaningless or that FPrs are bad for using them. Once you graduate from Functional-Light, you'll maybe/hopefully want to study FP more formally, and you'll certainly have plenty of exposure to what they mean and why.

But I want you to be able to apply some of the fundamentals of FP to your JavaScript now, because I believe it will help you write better, more reasonable code.

To read more about the motivations and perspective behind this book, check out the Preface.

Book

Table of Contents

Publishing

I'm self-publishing this book, most likely digitally on Leanpub. I'll also be trying to work out an option to sell print book copies, but that part is still uncertain.

If you'd like to contribute financially towards the effort (or any of my other OSS work) aside from purchasing the books, I do have a patreon that I would always appreciate your generosity towards.

patreon.png

In-person Training

The content for this book derives heavily from a training workshop I teach professionally (in both public and private-corporate workshop format) of the same name.

If you like this content and would like to contact me regarding conducting training on this, or other various JS/HTML5/Node.js topics, please reach out to me through any of these channels listed here:

http://getify.me

Online Video Training

I also have several JS training courses available in on-demand video format. I teach courses through Frontend Masters, like my Functional-Lite JS workshop. Some of those courses are also available on PluralSight.

Contributions

Any contributions you make to this effort are of course greatly appreciated.

But PLEASE read the Contributions Guidelines carefully before submitting a PR.

License & Copyright

The materials herein are all (c) 2016-2017 Kyle Simpson.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License.