Learning Java Functional Programming

Create robust and maintainable Java applications using the functional style of programming
Preview in Mapt

Learning Java Functional Programming

Richard M Reese

1 customer reviews
Create robust and maintainable Java applications using the functional style of programming
Mapt Subscription
FREE
$29.99/m after trial
eBook
$30.80
RRP $43.99
Save 29%
Print + eBook
$54.99
RRP $54.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$30.80
$54.99
$29.99p/m after trial
RRP $43.99
RRP $54.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Learning Java Functional Programming Book Cover
Learning Java Functional Programming
$ 43.99
$ 30.80
JavaScript: Functional Programming for JavaScript Developers Book Cover
JavaScript: Functional Programming for JavaScript Developers
$ 63.99
$ 44.80
Buy 2 for $35.00
Save $72.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781783558483
Paperback296 pages

Book Description

Functional programming is an increasingly popular technology that allows you to simplify many tasks that are often cumbersome and awkward using an object-oriented approach. It is important to understand this approach and know how and when to apply it. Functional programming requires a different mindset, but once mastered it can be very rewarding.

This book simplifies the learning process as a problem is described followed by its implementation using an object-oriented approach and then a solution is provided using appropriate functional programming techniques.

Writing succinct and maintainable code is facilitated by many functional programming techniques including lambda expressions and streams. In this book, you will see numerous examples of how these techniques can be applied starting with an introduction to lambda expressions. Next, you will see how they can replace older approaches and be combined to achieve surprisingly elegant solutions to problems.

This is followed by the investigation of related concepts such as the Optional class and monads, which offer an additional approach to handle problems. Design patterns have been instrumental in solving common problems. You will learn how these are enhanced with functional techniques.

To transition from an object-oriented approach to a functional one, it is useful to have IDE support. IDE tools to refactor, debug, and test functional programs are demonstrated through the chapters. The end of the book brings together many of these functional programming techniques to create a more comprehensive application. You will find this book a very useful resource to learn and apply functional programming techniques in Java.

Table of Contents

Chapter 1: Getting Started with Functional Programming
Aspects of functional programming
Java 8's support for functional style programming
Summary
Chapter 2: Putting the Function in Functional Programming
Lambda expressions usage
Functional programming concepts in Java
Lambda expressions revisited
Functional interfaces revisited
Summary
Chapter 3: Function Composition and Fluent Interfaces
Introduction to function composition
Creating composite functions prior to Java 8
Creating composite functions in Java 8
Fluent interfaces
Default methods and functions
Summary
Chapter 4: Streams and the Evaluation of Expressions
The Stream class and its use
Creating streams
Using the Stream class methods
Lazy and eager evaluation
Stream and concurrent processing
Summary
Chapter 5: Recursion Techniques in Java 8
Recursive data structures
Types of recursion
Understanding recursion
Recursion implementation techniques
When to use recursion
Recursion and humor
Summary
Chapter 6: Optional and Monads
Using the Optional class
Monads
Summary
Chapter 7: Supporting Design Patterns Using Functional Programming
Implementing the execute-around-method pattern
Implementing the factory pattern
Implementing the command pattern
Implementing the strategy pattern
Implementing the visitor pattern
Implementing the template pattern
Summary
Chapter 8: Refactoring, Debugging, and Testing
Refactoring functional code
Debugging lambda expressions
Using the println method to assist debugging
Testing functional programs
Summary
Chapter 9: Bringing It All Together
Functional Zork
The game's architecture
Summary
Epilogue

What You Will Learn

  • Use lambda expressions to simplyfy code
  • Use function composition to achieve code fluency
  • Apply streams to simply implementations and achieve parallelism
  • Incorporate recursion to support an application’s functionality
  • Provide more robust implementations using Optionals
  • Implement design patterns with less code
  • Refactor object-oriented code to create a functional solution
  • Use debugging and testing techniques specific to functional programs

Authors

Table of Contents

Chapter 1: Getting Started with Functional Programming
Aspects of functional programming
Java 8's support for functional style programming
Summary
Chapter 2: Putting the Function in Functional Programming
Lambda expressions usage
Functional programming concepts in Java
Lambda expressions revisited
Functional interfaces revisited
Summary
Chapter 3: Function Composition and Fluent Interfaces
Introduction to function composition
Creating composite functions prior to Java 8
Creating composite functions in Java 8
Fluent interfaces
Default methods and functions
Summary
Chapter 4: Streams and the Evaluation of Expressions
The Stream class and its use
Creating streams
Using the Stream class methods
Lazy and eager evaluation
Stream and concurrent processing
Summary
Chapter 5: Recursion Techniques in Java 8
Recursive data structures
Types of recursion
Understanding recursion
Recursion implementation techniques
When to use recursion
Recursion and humor
Summary
Chapter 6: Optional and Monads
Using the Optional class
Monads
Summary
Chapter 7: Supporting Design Patterns Using Functional Programming
Implementing the execute-around-method pattern
Implementing the factory pattern
Implementing the command pattern
Implementing the strategy pattern
Implementing the visitor pattern
Implementing the template pattern
Summary
Chapter 8: Refactoring, Debugging, and Testing
Refactoring functional code
Debugging lambda expressions
Using the println method to assist debugging
Testing functional programs
Summary
Chapter 9: Bringing It All Together
Functional Zork
The game's architecture
Summary
Epilogue

Book Details

ISBN 139781783558483
Paperback296 pages
Read More
From 1 reviews

Read More Reviews

Recommended for You

Mastering Concurrency Programming with Java 8 Book Cover
Mastering Concurrency Programming with Java 8
$ 43.99
$ 30.80
Neural Network Programming with Java Book Cover
Neural Network Programming with Java
$ 35.99
$ 7.20
Mastering Microservices with Java Book Cover
Mastering Microservices with Java
$ 35.99
$ 25.20
Mastering Web Application Development with AngularJS Book Cover
Mastering Web Application Development with AngularJS
$ 26.99
$ 5.40
Java Deep Learning Essentials Book Cover
Java Deep Learning Essentials
$ 39.99
$ 28.00
Python Machine Learning Book Cover
Python Machine Learning
$ 35.99
$ 25.20