The funny thing real functional languages doesn't use dotted chains. It's quite a stretch to try to make something functional without adequate syntax support. Java streams really make things a more difficult than it should be.