This article obscures the subject instead of revealing it because the author makes a point of stumbling around with non-solutions rather than explaining the very simple solution.
It would be a fun one to write a replacement for the JDK 8 streams API. The addition of lambdas and method references in JDK 8 is genius, but the streams API sucks in so many ways, not just being verbose, and having no thought made for exceptions, but also using an approach to concurrency that “just doesn’t work.” (Unless you think “works” is getting a 1.8x speed up on an embarrassingly parallel workload on an 8 core machine.)
For the point of pedagogy it would be fun to see a functional programming library to replace streams for Java, it would be hardly any code at all.