• No memoization • No partial functions lifting • No tuples • Optional extends NOT Serializable/Iterable • Lack of Stream/Optional in APIs • “Type pollution” • list.stream().map(...).collect(Collectors.toList()) • ...
• Mutable global state • Declared return value • Mutable instance state • Mutable global state • Mutable params • Exceptions Potential inputs Potential outputs
• Mutable global state • Declared return value • Mutable instance state • Mutable global state • Mutable params • Exceptions Potential inputs Potential outputs
• Mutable global state • Declared return value • Mutable instance state • Mutable global state • Mutable params • Exceptions Potential inputs Potential outputs
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