<div dir="ltr">How about using an anonymous file as a pipe?<div><br></div><div>j.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 15, 2018 at 6:38 PM, eas lab <span dir="ltr"><<a href="mailto:lab.eas@gmail.com" target="_blank">lab.eas@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I've raised this point before, under the subject of functional-programming;<br>
since the method of getting an answer by passing the data through multiple<br>
stages is the essence of functional programming.<br>
<br>
ETHO already uses this extensively, except that it's not yet automated:<br>
the output/s go to ScreenFrames, which can be marked as the the input.<br>
to the next stage of the <pipe>.<br>
<br>
A somewhat contrived example is solving the intolerable situation<br>
that ETHO doesn't show you the most recent files of a directory.<br>
<br>
Imagine having a directory of 88 files, some of which are 2 years old,<br>
and you want to continue with the project that you last worked on.<br>
3 days ago.<br>
<br>
Obviously you want immediate access to the most recent [say 6]<br>
files which you <left on top of the work pile>.<br>
<br>
System.Directory ^ Linux:*\d gives eg:...<br>
Linux:Browser.Mod 19.05.1970 01:02:17 38540<br>
Linux:C.Tool 04.05.2017 09:31:44 4372<br>
Linux:Clipboard.Obj 04.11.2012 11:13:15 6677<br>
Linux:CmprFiles 24.08.2017 21:00:37 1289<br>
...<br>
Under linux I've found that the most convenient listing format is:<br>
FileSize : FileName<br>
1454 : NeedPiping<br>
49174 : oberon.log<br>
1105 : NeedPiping.Bak<br>
10485760 : oberon100321.dsk<br>
1964988 : noname.eml<br>
678 : oberon.cnf<br>
48055 : HrOrderFuncts<br>
....<br>
and I vaguelly remember using ETHO's existing *FUNCTIONS* to do:<br>
1. put the 2nd field to the front. ==<br>
24.08.2017 Linux:CmprFiles 21:00:37 1289<br>
2. rearange the date-strings. ==<br>
2017.08.24<br>
3. sort the System.Directory lines using ETHO's existing function.<br>
== file listing in recentcy order<br>
4. output only the Size & Name fields.<br>
== just show the size and FileName<br>
<br>
So that's a 4stage-pipe.<br>
The great advantage of functional/piping is the extreme modularity:<br>
at any/every stage:N you only need be concerned about the output<br>
of stage:N-1 and stage:N. Nothing else need be considered.<br>
<br>
Since ETHO already uses the manualy repeated 2 stage loop:<br>
1. Put Output:N-1 to <F1 marked Frame><br>
2. Take <newly F1 marked Frame> as input to pipe-stage-N:<br>
why can't we modify/extend this to be able to have a syntax eg:<br>
<pipeSequenceCommand> <Argument> ?<br>
eg. Pipe.ListRecentcyOrderedFiles /sdc2/CRG/LNOspare/<br>
<br>
Also our ET.Mod already can execute a sequence of M.P.<br>
Adding the ability to have the text of stageN be the input of<br>
stage(N+1) would give us functional/piping ability.<br>
<br>
== crg<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch">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/<wbr>mailman/listinfo/oberon</a><br>
</blockquote></div><br></div>