Functional Thinking for Java
This video shows you how to transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. It takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages.