I like the idea of a pipe operator just like I like the &#39;;&#39; operator.<br>They are both (and independently) useful.<br>However, I object to using the &#39;|&#39; symbol for this.&nbsp; <br>(How about using&nbsp; &#39;::&#39; or&nbsp; &#39;:-:&#39;&nbsp; instead?)
<br><br>I think the &#39;|&#39; operator should be used to plug output streams into input streams<br>just as it is used between processes in linux shells.<br><br>To use such an operator we first we need objects<br>that (in the most general case)
<br>read data from an input stream, process the stream, <br>and then output the
result to an output stream.&nbsp; <br>Let&nbsp; b1, b2, b3&nbsp; be three such objects,&nbsp; &#39;in&#39;&nbsp; be an input stream,<br>and &#39;out&#39; be an output stream.<br>Then we could write:<br><br>b1 &lt; in; &gt; out. &nbsp;  <br><br>to have&nbsp; b1 read its input from &#39;in&#39; and put its result into&nbsp; &#39;out&#39;.
<br>Note that &#39;b1 &lt; in&#39;&nbsp; cannot generate any output since b1 does not yet know<br>where to send it.&nbsp; After the&nbsp; &#39;; &gt; out.&#39;&nbsp; b1 can process its input and put its<br>output into &#39;out&#39;.<br><br>

Now we can write:<br><br>b1 &lt; in; | b2 | b3 &gt; out.<br><br>which has <br>b1 read its input from &#39;in&#39;, process its input, and send its output to&nbsp; b2,<br>b2 process its input (the output of b1) and send its output to b3,&nbsp; and
<br>b3 process its input (the output of b2) and put its output into &#39;out&#39;.
<br><br>To have this work well there would need to be objects called pipes<br>that do most of the data moving between&nbsp; b1, b2, b3.<br>Thus the method&nbsp;&nbsp; &#39;|&#39;&nbsp; would look something like:<br><br>| b<br>pipe := Pipe output: b.
<br>self &gt; pipe.<br><br>Perhaps things would not work exactly as I have described<br>but you get the idea.<br>Suggestions as to better syntax welcome.<br><br>Notes:<br>1)&nbsp; No change to Squeak or any other version of Smalltalk is needed. 
<br>&nbsp;&nbsp;&nbsp;&nbsp; (unless we want cleaner syntax);<br>&nbsp;&nbsp;&nbsp;&nbsp; we only need to implement this feature.&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; Anybody want to write a pipes package?<br>&nbsp;&nbsp;&nbsp;&nbsp; Given how useful pipes are in linux shells, <br>&nbsp;&nbsp;&nbsp;&nbsp; it surprises me that a pipes package hasn&#39;t been written before.
<br>2)&nbsp; Some collection classes could be made to act like streams with regard to pipes;<br>&nbsp;&nbsp;&nbsp;&nbsp; we just need to implement the necessary methods.<br>3)&nbsp; Class Pipe could have subclasses each of which would have different internal
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; implementations for efficiency reasons.<br><br>Ralph Boland<br>