This is great, but with the full two-way interop and low overhead (just add the .jar for Clojure) that functional JVM languages provide, is there really any reason to deal with the pain of doing FP in <i>Java the language</i>? When you don't have real closures, map/reduce/filter and other HOFs become rather tedious and inflexible.