liveBook · Manning

What you will learn in Functional Programming in JavaScript

How to improve your JavaScript programs using functional techniques

by Luis Atencio

Chapter by chapter

Chapter 1: Chapter 1. Becoming functional

1.1 Can functional programming help? · 1.2 What is functional programming? · 1.3 Benefits of functional programming · 1.4 Summary

What you learn in chapter 1 →

Chapter 2: Chapter 2. Higher-order JavaScript

2.1 Why JavaScript? · 2.2 Functional vs. object-oriented programming · 2.3 Functions · 2.4 Closures and scopes · 2.5 Summary

What you learn in chapter 2 →

Chapter 3: Chapter 3. Few data structures, many operations

3.1 Understanding your application’s control flow · 3.2 Method chaining · 3.3 Function chaining · 3.4 Reasoning about your code · 3.5 Learning to think recursively · 3.6 Summary

What you learn in chapter 3 →

Chapter 4: Chapter 4. Toward modular, reusable code

4.1 Method chains vs. function pipelines · 4.2 Requirements for compatible functions · 4.3 Curried function evaluation · 4.4 Partial application and parameter binding · 4.5 Composing function pipelines · 4.6 Managing control flow with functional combinators · 4.7 Summary

What you learn in chapter 4 →

Chapter 5: Chapter 5. Design patterns against complexity

5.1 Shortfalls of imperative error handling · 5.2 Building a better solution: functors · 5.3 Functional error handling using monads · 5.4 Monadic chains and compositions · 5.5 Summary

What you learn in chapter 5 →

Chapter 6: Chapter 6. Bulletproofing your code

6.1 Functional programming’s influence on unit tests · 6.2 Challenges of testing imperative programs · 6.3 Testing functional code · 6.4 Capturing specifications with property-based testing · 6.5 Measuring effectiveness through code coverage · 6.6 Summary

What you learn in chapter 6 →

Chapter 7: Chapter 7. Functional optimizations

7.1 Under the hood of function execution · 7.2 Deferring execution using lazy evaluation · 7.3 Implementing a call-when-needed strategy · 7.4 Recursion and tail-call optimization (TCO) · 7.5 Summary

What you learn in chapter 7 →

Chapter 8: Chapter 8. Managing asynchronous events and data

8.1 Challenges of asynchronous code · 8.2 First-class asynchronous behavior with promises · 8.3 Lazy data generation · 8.4 Functional and reactive programming with RxJS · 8.5 Summary

What you learn in chapter 8 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.