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