Chapter 4. Implementing Functional Programming Techniques in JavaScript