# FP with Java 8 - 101
## Why should I care? Java for FP? * Java (even 8) is not Scala, Clojure, Haskell or [your-favourite]. * Every now and then Java might still be required, e.g. legacy codebase, customer requirement, ... * If so, Java 8's FP support is actually pretty nice -> if using Java, Java 8 is a big improvement.
## What to expect (from this intro)? * A couple of examples to present Java 8's new FP-enabling features. * (Basic Java & FP knowledge is assumed)

Short precap

See JavaPreJava8Comparison.java

The main things

  • Lambda expressions - functions closer to being first class citizens
  • Stream API etc. - uniform way to work in a FPish way with collections etc.
  • Misc other smaller improvements (Optional, default methods in interfaces, ...)
## Lambda expressions * See [LambdaExpressionExamples.java](https://github.com/toukovk/java-8-fp-examples/blob/master/src/test/java/LambdaExpressionExamples.java)
## Streams * See [StreamExamples.java](https://github.com/toukovk/java-8-fp-examples/blob/master/src/test/java/StreamExamples.java)
## Misc things * See [MiscExamples.java](https://github.com/toukovk/java-8-fp-examples/blob/master/src/test/java/MiscExamples.java)
## Do you want more? * Try it - for example clone the [Example repo](https://github.com/toukovk/java-8-fp-examples). * [Venkat S: Functional Programming in Java](https://pragprog.com/book/vsjava8/functional-programming-in-java) * [Retrolambda](https://github.com/orfjackal/retrolambda) - use Java 8 lambdas on earlier Java versions (caveat - I haven't tried myself)
## Thanks - questions/feedback? ### [@toukovk](https://twitter.com/toukovk)