Saumont, Pierre-Yves Saumont Functional Programming in Java (1617292737)
DESCRIPTION Functional programming is a deep and potentially mind-bending discipline. Fortunately, Java developers don't have to master every aspect of FP to get a big boost in the performance, readability, and maintainability of their applications. By learning a few core FP principles, they can write code that's less prone to side effects and unwanted dependencies and which is much better suited to the parallel processing required by modern multi-core and distributed systems. Also, because units of functional code are designed to be modular and independent, FP reduces or eliminates many of the bugs development teams routinely face when managing a large codebase. Functional Programming in Java teaches Java developers how to incorporate the most powerful benefits of functional programming into new and existing Java code. Written to meet the needs of professional Java developers who want to introduce functional programming principles into new and legacy projects, this book uses examples, exercises, and illustrations to teach core FP principles such as referential transparency, immutability, persistence, and laziness. They’ll discover which of the new functionally-inspired features of Java 8 will help in applying FP principles to code—as well as which to avoid. In the end, they’ll be able to think functionally about coding tasks in Java and use FP to make their applications easier to understand, optimize, maintain, and scale. KEY FEATURES • Increases productivity • Easy to grasp examples and illustrations • Written for professional Java developers AUDIENCE Readers need to be comfortable with Java programming. No previous experience with functional programming is required. ABOUT THE TECHNOLOGY Functional programming is gaining momentum, mainly through adoption of new languages such as Scala, Clojure or Groovy, and through the new popularity of older languages such as Haskell or Erlang. And functional programming is coming to Java 8 with the addition of features such as lambda expressions, and Streams.