Beyond Lambdas & Streams - Functional Fluency in Java

Java 8 opened the doors for the developers to leverage the power of functional programming. Developers can apply techniques such as higher order functions, composition, and laziness with lambdas, and streams API introduced in Java 8. However, we would soon hit the limits if we extensively use the functional style of programming. In this demo, I will start with the examples that will show such limitations, and I will use a library called "Vavr" to overcome the limitations of Java 8 and bring in additional functional programming techniques that are not readily available in Java 8 language. My goal is to convey how to write fluent functional programs in Java without falling back on the conventional object-oriented techniques to fill the gaps.

 
1 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  • Introduction & Fluent API to create functions (5 minutes)
  • What happens when a function in streams chain throws an exception & how to retain functional fluency  (10 minutes)
  • Currying, partial application, lifting, and memoization (10 minutes)
  • Examples of fluent composition (10 minutes)
  • Property-based testing (5 minutes)
  • Q&A (5 minutes)

Learning Outcome

  • What are the limitation we hit while programming in functional style in Java 8
  • How to overcome these limitations and write more fluent programs
  • How to leverage the functional programming techniques that are not directly available in the language (Java 8)

Target Audience

Developers who wants leverage functional programming techniques in Java, Architects, FP enthusiasts

schedule Submitted 3 months ago

Comments Subscribe to Comments

comment Comment on this Proposal