Session
Functional Java – What we can learn from Haskell
In many Java projects, functional programming is still considered exotic or unnecessary. Instead of clear data flows and immutable states, imperative structures, side effects, and code that is difficult to test dominate. This leads to complexity, unexpected behavior, and increasing maintenance costs—especially in large systems.
For decades, Haskell has demonstrated how elegantly and robustly problems can be solved using pure functions, immutability, and composition. Even though Java does not follow a purely functional paradigm, it now offers powerful tools for functional thinking and programming with recursion, lambdas, the Stream API, higher-order functions, function composition, pattern matching, records, and sealed classes. 
In this talk, we transfer central Haskell concepts to modern Java (8 - 25). However, we not only look at the existing on-board tools, but also at how other important concepts of functional programming (list comprehensions, partial function application, currying, and zipping) can be mapped in Java. Using many small, understandable code examples, we compare the imperative style with the functional style and discover how this significantly improves readability, testability, and maintainability—without leaving the Java ecosystem.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top