Books & Videos

Table of Contents

  1. Chapter 1 Why Functional Programming?

    1. I Have to Be Good at Writing Concurrent Programs

    2. Most Programs Are Just Data Management Problems

    3. Functional Programming Is More Modular

    4. I Have to Work Faster and Faster

    5. Functional Programming Is a Return to Simplicity

  2. Chapter 2 What Is Functional Programming?

    1. The Basic Principles of Functional Programming

    2. Designing Types

    3. Exercises

  3. Chapter 3 Data Structures and Algorithms

    1. Lists

    2. Maps

    3. Combinator Functions: The Collection Power Tools

    4. Persistent Data Structures

    5. Some Final Thoughts on Data Structures and Algorithms

    6. Exercises

  4. Chapter 4 Functional Concurrency

    1. The Actor Model

    2. Software Transactional Memory

    3. Exercises

  5. Chapter 5 Better Object-Oriented Programming

    1. Imperative, Mutable Code

    2. The Liskov Substitution Principle

    3. More on Design Patterns

    4. What Makes a Good Type?

    5. Rethinking Object-Oriented Middleware

    6. Exercises

  6. Chapter 6 Where to Go From Here

    1. Functional Tools for Java

    2. A Recap

    3. Exercises

  1. Appendix References

  2. Glossary

  3. Colophon