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


5.1. Filtering... but what: Suppose you have an array, called someArray, and you apply the following .filter() to it, which at first sight doesn't even look like valid JS code. What will be in the new array, and why?

     let newArray = someArray.filter(Boolean);

5.2. Generating HTML code, with restrictions: Using the filter() sequence is quite common (even allowing that sometimes you won't use all three) and we'll come back to this in the Functional Design Patterns section of Chapter 11, Implementing Design Patterns - The Functional Way. The problem here is to use those functions (and none others!) to produce an unordered list of elements (<ul>...</ul>) that can later be used onscreen. Your input is an array of objects like the following (does the list of characters date me?) and you must produce a list of each name that corresponds to chess or checkers players:

     var characters = [
         {name: "Fred", plays: "bowling"},
         {name: "Barney...