Appendix A. Functional JavaScript in the Wild

In no way does this book represent even a modicum of original thinking regarding functional programming in JavaScript. For many years—indeed, for as long as JavaScript has existed—people have pushed the boundaries of its support for a functional style. In this appendix, I’ll attempt to briefly summarize what I perceive as a fair sampling of the offerings in languages and libraries on the topic of functional JavaScript. No ranking is implied.

Functional Libraries for JavaScript

There are numerous noteworthy JavaScript libraries available in the wild. I’ll run through the high-level features of a few herein and provide a few examples along the way.

Functional JavaScript

Oliver Steele’s Functional JavaScript library is the first functional library that I discovered. It provides all of the normal higher-order functions like map, but it provides a very interesting string-based short-form function format. That is, to square the numbers in an array, one would normally write the following:

map(function(n) { return n * n }, [1, 2, 3, 4]);
//=> [2, 4, 9, 16]

However, with the Functional JavaScript function literal string, the same code be written as:

map('n*n', [1, 2, 3, 4]);
//=> [2, 4, 9, 16]

Functional JavaScript also provides currying of the function literal strings:

var lessThan5 = rcurry('<', 5);

lessThan5(4);
//=> true

lessThan5(44);
//=> false

Functional JavaScript is a masterful piece of JavaScript metaprogramming and well worth exploring for its ...

Get Functional JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.