Book Image

Mastering JavaScript Functional Programming - Third Edition

By : Federico Kereki
5 (1)
Book Image

Mastering JavaScript Functional Programming - Third Edition

5 (1)
By: Federico Kereki

Overview of this book

Functional programming is a programming paradigm that uses functions for developing software. This book is filled with examples that enable you to leverage the latest JavaScript and TypeScript versions to produce modern and clean code, as well as teach you to how apply functional programming techniques to develop more efficient algorithms, write more concise code, and simplify unit testing. This book provides comprehensive coverage of the major topics in functional programming to produce shorter, clearer, and testable programs. You’ll begin by getting to grips with writing and testing pure functions, reducing side effects, as well as other key features to make your applications functional in nature. The book specifically explores techniques to simplify coding, apply recursion, perform high-level 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 practical programming skills needed to confidently enhance your applications by adding functional programming to wherever it’s most suitable.
Table of Contents (17 chapters)
14
Bibliography

Transformations

The first set of operations that we are going to consider works on an array and processes it in the base of a function to produce certain results. There are several possible results: a single value with the reduce() operation, a new array with map(), or just about any kind of result with forEach().

Caring about inefficiency

If you google around, you will find some articles declaring that these functions are inefficient because a loop done by hand can be faster. This, while possibly true, is practically irrelevant. Unless your code really suffers from speed problems and you can determine that the slowness derives from using these HOFs, trying to avoid them using longer code, with a higher probability of bugs, simply doesn’t make much sense.

Let’s start by considering the preceding list of functions in order, beginning with the most general of all, which, as we’ll see, can even be used to emulate the rest of the transformations in this chapter...