Getting double semi as sequencer harvested.
Hi All, This thread has gotten long and diverse. It would help if those who are talking about traits branch that topic off to its own thread. I do want to point out that the context of my original post was that it was a cced copy of a note sent to vassili asking for his help in preparing the sequencer for harvesting. Without at least that much effort, the nays have the day by default. Then it is up to finding an amenable release team (or not). I am following thru on this because 1) As Ramon points out in: http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-September/120076.html It seems to have Alan Kays blessing. Alan is one of the few certifiable geniuses amoung us. His opinions count with me more than many. If he had wanted squeak to remain static I would have thought no further about it. 2) I am curious to try it. There are several annoyances that it may halt. I long to write: 1 to: 10 ;; collect: [ :each | each square ] ;; explore . on the fly. And yes, squares := ( 1 to: 10 ) collect: [ :each | each square ] . squares explore. is nice too. But choices are nicer. 3) Jason, my modest claim is that it will help me read code more easily. This is a marginal improvement. However, partial progress counts. And marginal improvements count well in evolutionary matters. 4) If it turns out to prove harmful. Reversions are possible. People clever enough to write asPipe can certainly write as-if-pipe-never-existed. Indeed, until a decompiler decides to use the new sequencer it will disappear in decompiled code. ---- on the form double-semi Several people in the pipe thread mentioned this seemed cleanest to them. For me it helps to remind me it is a sequencer similar to semi for cascade. On printout the indenting should provide the clue that semi and double semi are different. The indenting would be different for double semi because it would be different if the syntactic sugar were not there. >From the (some what contrived*) example previously used: nonHermsOlderThanTensMothersNames := lotsOfPeople selecting: [ :each | each age > 10] ;; rejecting: [:each |each sex = #unknown ] ;; collecting: [:each | each mother] ;; selecting: [:each | each notNil] ;; collecting: [:each | each name] ;; asOrderedCollection (It occurs to me between my word processor an the edit non-abilities that come with the mail composer you may not see things in the right fashion. imagine each ;; indented one more tab stop). contrast with PolygonMorph new ; color: Color red ; borderColor: Color black ; borderWidth: 1 . I suspect the flexibility of showing the code in this alternate form will catch on. At least enough to justify my effort and support behind it. That effort is to talk about it a little here; and prepare it for inclusion in an Alpha release image. I ask all of you who have spoken positively to help get this to the doorstep of inclusion. And those of you who have spoken negatively to keep an open mind. Yours in service and curiosity, --Jerome Peace * in practice collecting some of this into temp variables for readability would be good practice. --------- The difference between idiocy and genius is a matter of time. In the end few listen to idiocy. In the beginning few listen to genius. ____________________________________________________________________________________Ready for the edge of your seat? Check out tonight's top picks on Yahoo! TV. http://tv.yahoo.com/ |
Free forum by Nabble | Edit this page |