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.