<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On Aug 25, 2007, at 8:40 PM, Jason Johnson wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">This is a bit contrived.<SPAN class="Apple-converted-space">  </SPAN>If you ever did find the need to do this it</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">should look like:</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">(((((((((((obj message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">  </SPAN>message2:param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">    </SPAN>message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">      </SPAN>message2:param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">        </SPAN>message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">          </SPAN>message2:param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">            </SPAN>message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">              </SPAN>message2:param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">                </SPAN>message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">                  </SPAN>message2:param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">                    </SPAN>message1: param)</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><SPAN class="Apple-converted-space">                      </SPAN>message2:param</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Code smell to be sure, but you pile what you don't like on one line</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">and say you can't read it while formatting what you do like and saying</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">"see!".</FONT></P></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>To me there is not much difference between ...</DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(((((((((((obj message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">  message2:param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">    message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">      message2:param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">        message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">          message2:param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">            message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">              message2:param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">                message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">                  message2:param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">                    message1: param)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">                      message2:param</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>and </DIV><DIV><BR class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(((((((((((obj message1: param) message2:param) message1: param) message2:param) message1: param) message2:param) message1: param) essage2:param) message1: param) message2:param) message1: param) message2:param</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>1. They both suck ...</DIV><DIV>2. While writing and thinking ... I have always to stop and think ... "ok, now where do I need to put the bloody parenthesis"</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR><BLOCKQUOTE type="cite"> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">The pipe is needed to support a pipe&amp;filter style of programming. That</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">perfectly works with Smalltalk syntax, and truly</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">opens up a better way of doing functional transformations.</FONT></P> </BLOCKQUOTE><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">pipe&amp;filter style of programming?<SPAN class="Apple-converted-space">  </SPAN>Most people call this "functional</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">programming" and it doesn't require a pipe operator to work.<SPAN class="Apple-converted-space">  </SPAN>Such an</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">operator can make certain code cleaner to be sure, but it doesn't</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">"open up a better way of doing functional transforms" by any means.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Just saves you one character per function call.</FONT></P> </BLOCKQUOTE></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I call it too functional programming ... but there are many definitions of it ...</DIV><DIV>for somebody functional programming is no side-effects and nothing else,</DIV><DIV>for others higher order functions is ok ...</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>since I didn't want to get into that, I just said pipe&amp;filters ... i thought it was alright ... thanks for this clarification ... now everybody now we are talking about ...</DIV><BLOCKQUOTE type="cite"></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Such an operator can make certain code cleaner to be sure, but it doesn't</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">"open up a better way of doing functional transforms" by any means.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Just saves you one character per function call.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Not only it can make " certain code cleaner" , but It changes the way you think, because it's like the full stop in regular English ...</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Simple train of thought example ...</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>----</DIV><DIV>&gt;&gt;here I'm Thinking&lt;&lt;</DIV><DIV>here I'm doing</DIV><DIV>----</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>&gt;&gt;ok so what do I have to do ... first get I get some objects&lt;&lt;&lt;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>storage getSomeObject &gt;&gt; than .... (and I put my pipe symbol ) ... put a PIPE &lt;&lt;</DIV><DIV>           | </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Already here it cool ...I don't have to ... think .. "Gee I need to go back and put a parenthesis .."</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>........</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>storage   getSomeCollection &gt;&gt; than .... aaaaand PIPE &lt;&lt;</DIV><DIV>              | filter: [:obj | obj creationDate &gt;10]     &gt;&gt;&gt;&gt;&gt; some more mumble mumble .... aaaaaand PIPE&lt;&lt;</DIV><DIV>              | collect: [:obj | obj.name]        &gt;&gt;&gt;&gt;  some more mumble mumble .... and PIPE &lt;&lt;</DIV><DIV>&gt;&gt; .... her some more mumble mumble .... because I'm not sure what to do BUT </DIV><DIV>I do know that I've got some names.... I never need to go back and put parenthesis .. and this does not break my thoughts ....&lt;&lt;&lt;&lt;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>......</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>storage   getSomeCollection &gt;&gt;&gt; than .... (and I put my pipe symbol ) &lt;&lt;&lt;</DIV><DIV>              | filter: [:obj | obj creationDate &gt;10]     &gt;&gt;&gt;&gt;&gt; than .... (and I put my pipe symbol )... and PIPE &lt;&lt;</DIV><DIV>              | collect: [:obj | obj.name]        &gt;&gt;&gt;&gt;than .... (and I put my pipe symbol )... and PIPE&lt;&lt;</DIV><DIV>              | filter: [:name | name isFemale ]</DIV><DIV>              | filter: [:name | beutifullGirlsDB contains:name ] </DIV><DIV>              | do: [:name | mailTo: (beutifullGirlsDB getWithName:name) message: "What are you doing tonight ?" ] </DIV><DIV>&gt;&gt;&gt;mmm ... I could do a few things better ... filter and collect less ... so I'll do another pass ....</DIV><DIV>At this point I might write a Unit test and later I'll make it faster ...</DIV><DIV> etc etc ....&lt;&lt;&lt;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>---------------------------------</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>To me it's like a full stop in english. Maybe you are different. But I think that most people like full stops when a sentence ends.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The pipe is the full stop ... ready to start the next manipulation ...</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>Fabio Filasieno</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></BODY></HTML>