Functional Programming with Java
2h 29mAdvanced2023-12-12
Authors

Shaun Wassell
Full-Stack Software Developer
Course details
Functional programming is a way of organizing code that makes applications more scalable and maintainable. By utilizing the core concepts of immutability, data-function separation, and first-class functions, programmers can write better code. In this course, learn about the functional programming paradigm and see how to take advantage of it with Java and object-oriented programming. Apply the learnings to real-world code and examine some of the more advanced and misunderstood concepts—such as partial-application, recursion, and composition—to become skilled in developing flexible code.
Skills covered
JavaProgramming FoundationsOracleProgramming LanguagesSoftware DevelopmentDeep Dive (X:Y)
Concepts
Introduction
- Functional programming - A new way to organize code
- What you should know
Introduction to Functional Programming
- Why use functional programming
- What is declarative programming
- Immutability in functional programming
- Functional purity
- First-class functions
First-Class Functions
- The function interface
- Lambda expressions
- BiFunctions and beyond
- Functions as data
- Passing functions as arguments
- Returning functions
- Closure
- Higher-order functions
Working with Streams in Java
- Map in Java
- Filter in Java
- Reduce in Java
- Collect in Java
- Challenge - Stream exercises
- Solution - Stream exercises
- Combine list functions
- Parallel streams
- Challenge - Average salary calculator
- Solution - Average salary calculator
Advanced Concepts
- Advanced functional concepts
- Partial application and currying
- Recursion
- Composition
- Challenge - Recursion
- Solution - Recursion