<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Original Message ----<BR>From: Igor Stasenko &lt;siguctua@gmail.com&gt;<BR>To: The general-purpose Squeak developers list &lt;squeak-dev@lists.squeakfoundation.org&gt;<BR>Sent: Thursday, August 30, 2007 11:15:14 AM<BR>Subject: Re: Pipe syntax and the current methods<BR><BR>
<DIV>&gt; On 30/08/2007, Yoshiki Ohshima &lt;yoshiki@squeakland.org&gt; wrote:<BR>&gt; &gt;&nbsp;&nbsp; Hello,<BR>&gt; &gt;<BR>&gt; &gt; &gt; Since Pipes makes Smalltalk better at prototyping, Pipes gives me a sharper pencil.<BR>&gt; &gt;<BR>&gt; &gt;&nbsp;&nbsp; I think I know a part of your frustration.&nbsp;&nbsp;When you are trying make<BR>&gt; &gt; the idea rendered into the first cut of code, you really don't want to<BR>&gt; &gt; move the cursor back in the characters you typed and insert some other<BR>&gt; &gt; stuff just to make it compile and do something.<BR>&gt; &gt;<BR>&gt; &gt;&nbsp;&nbsp; Another approach to solve this problem is to make the editor<BR>&gt; &gt; smarter.&nbsp;&nbsp;I could imagine to have a some command-key sequence that<BR>&gt; &gt; puts open and close parenthesis around the *last* expression.&nbsp;&nbsp;The<BR>&gt; &gt; definition of the "last" expression may need a clarification but it<BR>&gt; &gt; almost sounds like
 "right before the last statement separater ($.)"<BR>&gt; &gt; would be good.&nbsp;&nbsp;With it, if you type:<BR>&gt; &gt;<BR>&gt; &gt;&nbsp;&nbsp; aCollection select: [:each | each isSomething]<BR>&gt; &gt;<BR>&gt; &gt; and then realize that you actually want to continue to write collect:,<BR>&gt; &gt; then you press a key combination and it enclose the above expression<BR>&gt; &gt; with $( and $).&nbsp;&nbsp;In this way, you don't have to change the language.<BR>&gt; &gt;<BR>&gt; &gt;&nbsp;&nbsp; For this kind of stuff, having three different precedence in message<BR>&gt; &gt; sending is basically two too many.&nbsp;&nbsp;That is why the lisp-mode in Emacs<BR>&gt; &gt; shines more than any other modes.&nbsp;&nbsp;But for Smalltalk-80 syntax, it<BR>&gt; &gt; wouldn't be too bad.<BR>&gt; &gt;<BR>&gt; <BR>&gt; And then the only thing you need is to implant a chip into your brain<BR>&gt; to be able read code with many (...) fast :)<BR><BR>You already have
 one of those chips.&nbsp; They call that your nose and it is for smelling nasty, nasty&nbsp;code smells.&nbsp; It doesn't matter if you are using () or |, they both smell when used excessively.&nbsp; Refactor!&nbsp; </DIV>
<DIV>&nbsp;</DIV>
<DIV>Do something crazy like defining a StackFilter, where you can push expressions into a stack and apply it to an underlying collection.&nbsp; It would compute the filtered value whenever the underlying collection changes.&nbsp; Something like this would be a more OO approach, I would think.&nbsp; Think like an object and not a function.&nbsp; :)</DIV>
<DIV>&nbsp;</DIV>
<DIV>cheers,</DIV>
<DIV>Rob</DIV></DIV></DIV></div></body></html>