Java 8 issues: Only 3 functional control structures No memoization No lifting No pattern matching No tuples Optional not Serializable/Iterable Lack of Stream/Optional in APIs Checked exceptions in functions "Type pollution" list.stream().map(...).collect(toList()) ... 8
Potential inputs: declared params instance state global state Potential outputs: declared returned value mutable instance state mutable global state mutable params exceptions 11
"Functional programming is about writing pure functions, about removing hidden inputs and outputs as far as we can, so that as much of our code as possible just describes a relationship between inputs and outputs." http://blog.jenkster.com/2015/12/what-is-functional-programming.html 14