In recent years functional programming has gained ground over object oriented mainly due to the advancement in computing power. The JVM is no exception, you can find powerful contenders in Clojure and Scala. However Groovy is not that far away in the race. The Groovy programming language contains a wide array of APIs and features that facilitate a functional programming style, such as closure composition, memoization, trampolines, iterator methods and more. We'll explore all of these features that are sure to spice up your daily experience.