Table of contents : Cover Front Matter Part I. Getting Familiar with Functional Programming 1. Functional Programming Overview 2. Understanding Functions 3. Understanding Immutability Part II. Harnessing the Power of Functional Programming 4. Composing Functions Using Pipelining 5. Composing Functions Using Currying 6. Handling Temporal Coupling 7. Functional Patterns 8. Exception Handling 9. Miscellaneous Topics Back Matter