"Bert Freudenberg" bert@freudenbergs.de wrote in message news:4C5ECA16-978E-4250-B132-6A6CDF6442F2@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
That's nice. Yet another suggestion, similar to this - treat a pipe as having the same syntax as a cascade, but with a marker at the start. e.g. (using ! as the pipe marker) ! 4 + 2; * 3; + 3; * 2
the blog posts example would be...
!db getBlogposts; filter: [ :blogPost | blogPost data < (today - 7 days)]; filter: [ :blogPost | db coolPosts includes: item )]; collectMails; do: [ :mail | "Happy to announce ..."]
Note that there is no problem having ! at the START of a statement.
So, a pipe is just '!' followed by a cascade. Other chars, or sequence of chars, could be chosen instead of ! ? / \ ` ? £ * % ~ @ ] } & + = would all work, but | ^ $ . # wouldn't work )