In your functional example we don't see how the squares-of and take functions are implemented. I'm not a Java expert, but I'm pretty sure we could write those functions to enable a statement like this...
squares-ofsquares_of(integers).take(25);
which is not so very different.