What's so painful about just doing `exclaim(capitalize(doubleSay("hello")));`? Why introduce needless syntactic sugar that'll only confuse people about how UNIX pipes work?
exclaim capitalize doubleSay
Sure, some of us has spent 20 years doing this so it's easy, but you can't deny that this is far nicer to read:
doubleSay capitalize exclaim
I'm a big fan of Fluent Interfaces, so I use this construct fairly often:
"hello".doubleSay().capitalize().exclaim()