Chapter 14. Functional programming techniques

This chapter covers

  • First-class citizens, higher-order functions, currying, and partial application
  • Persistent data structures
  • Lazy evaluation and lazy lists as generalizing Java streams
  • Pattern matching and how to simulate it in Java
  • Referential transparency and caching

In chapter 13 you saw how to think functionally; thinking in terms of side-effect-free methods can help you write more maintainable code. In this chapter, we introduce more advanced functional programming techniques. You can view this chapter as a mix of practical techniques to apply in your codebase as well as academic information that will make you a more knowledgeable programmer. We discuss higher-order functions, currying, ...

Get Java 8 in Action: Lambdas, streams, and functional-style programming now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.