Quick summary of the talk: * We start playing a bit with integer streams * We soon come across lambda expressions * We introduce the Lambda Calculus and show that it is Turing Complete. * We look at how Java lambda expressions relate to lambda Calculus ones * We look at how the two differ * We ask ourselves: are functions 1st class citizens in Java 8? * We look at what ‘1st class functions‘ means in Haskell and Scala * We compare Java’s approach to ‘1st class functions’ with Scala’s * We ask ourselves: o are Java lambda expressions objects? o are Java lambda expressions syntactic sugar for anonymous instances of functional interfaces? o Is it possible to write a recursive lambda expression in Java 8? * We get answers to those questions