2007/8/27, Bert Freudenberg <bert@freudenbergs.de>:
Just for fun - the tiny attached change-set allows #asPipe to get
piping behavior for cascades:
Squeak asPipe
ps: 'aux';
grep: 'fabio';
sort
It makes these two expressions equivalent
((((4 + 2) * 3) + 3) * 2)
4 asPipe + 2; * 3; + 3; * 2
Now I wouldn't use this in production but for interactive exploration
it might actually be useful. Similar to implementing Symbol>>#value:
to allow "(1 to: 10) collect: #squared".
Btw, did you know each class can declare its own parser and compiler
class? Experimenting with the syntax does not necessarily have to
break other's stuff.
- Bert -
It's very cool.
Smalltalk is wonderfull language. We can implement any ideas without making changes in language (as Java or C# live).
I think pipes is very usefull in DSL implementation and usage, simpler and fast object inspecting. But long message chaines in domain code are bad smell