<div dir="ltr">Hi Peter,<div><br></div><div>I would like to be able to chain commands, where the output of one command is treated as the input to another command. Something like:</div><div><br></div><div>Stream.Do List.File AFile.txt | Lines.Uppercase | Lines.Sort | Lines.Uniq | Lines.Count</div><div><br></div><div>The three above modules (Stream, List, and Lines) would co-operate to list the number of unique case-insensitive lines in a file. This should be possible without multitasking or process scheduling -- the Stream.Do command would merely set the output of each command (a PROCEDURE variable) to the input of the next with the final output being retained by 'Do' and written to the system log. </div><div><br></div><div>That is what I envision in a Stream module suitable for Project Oberon. Others may have a different opinion!</div><div>Best Regards,</div><div>Chuck</div><div><br></div><div> </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 22, 2021 at 1:21 PM <<a href="mailto:peter@easthope.ca">peter@easthope.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From:   Charles Perkins <<a href="mailto:chuck@kuracali.com" target="_blank">chuck@kuracali.com</a>><br>
Date:   Thu, 22 Apr 2021 12:34:35 -0700<br>
> I was just wishing for streams in Project Oberon so this is timely for me.<br>
<br>
Charles, can you elaborate on the motivation for Streams please.  <br>
Why not just use Files directly?<br>
Can your requirements help to illustrate?<br>
<br>
Thx,                             ... P.<br>
<br>
-- <br>
VoIP: +1 604 670 0140            Bcc: peter at easthope. ca<br>
<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
</blockquote></div>