# 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)
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)