Functional Programming in Pure Java (1.5+)