Book Image

Mastering JavaScript Functional Programming

By : Federico Kereki
Book Image

Mastering JavaScript Functional Programming

By: Federico Kereki

Overview of this book

Functional programming is a programming paradigm for developing software using functions. Learning to use functional programming is a good way to write more concise code, with greater concurrency and performance. The JavaScript language is particularly suited to functional programming. This book provides comprehensive coverage of the major topics in functional programming with JavaScript to produce shorter, clearer, and testable programs. You’ll delve into functional programming; including writing and testing pure functions, reducing side-effects, and other features to make your applications functional in nature. Specifically, we’ll explore techniques to simplify coding, apply recursion for loopless coding, learn ways to achieve immutability, implement design patterns, and work with data types. By the end of this book, you’ll have developed the JavaScript skills you need to program functional applications with confidence.
Table of Contents (22 chapters)
Title Page
About the Author
About the Reviewer
Customer Feedback
Connecting Functions - Pipelining and Composition
Answers to Questions

Impure functions

If you decided to completely forego all kinds of side effects, your programs would only be able to work with hardcoded inputs... and wouldn't be able to show you the calculated results! Similarly, most web pages would be useless; you wouldn't be able to do any web services calls, or to update the DOM; you'd have static pages only. And, for server-side JS, your Node.JS code would be really useless, not being able to do any I/O...

Reducing side effects is a good goal in FP, but we cannot go overboard with it! So, let's think how to avoid using impure functions, if possible, and how to deal with them if not, looking for the best possible way to contain or limit their scope.

Avoiding impure functions

Earlier in this chapter, we saw the more common reasons for impure functions. Let's now consider how we can minimize their number, if doing away with all of them isn't really feasible.

Avoiding the usage of state

With regard to the usage of global state --both getting and setting it...