[Oberon] Functional composition?

eas lab lab.eas at gmail.com
Sun Jan 12 05:15:30 CET 2014

Modules are marvelous to hide clutter, and reduce the human memory load.

But functional-composition goes further:
 there's no arguments type & order to remember; there's only "it".
 If the task works up to stage N, you don't need to remember/understand
    previous stages, other than the interface between N & N+1.

ETHO has a remarkable little-known application <a scheme based drawing
program>, which built scheme on ETHO and then the drawing program on scheme.

What about functional-composition abilities for ETHO, by a simular approach?
I never managed to use "layla?" because of the documentaion.
Was the contributed-ap: toy, going towards functional-composition?

Here's a taste of what FC can do:-
Today I had a serious problem, to find the text-file of the TextToSpeech,
which which 'mentioned' some legal matter.

Several approaches of FC failed; eg:
`find` FileSubTree DaysOld <containing an unusual text-string>.
Finally `lsof | grep wily | grep egal`  gave me 4 files, and success.

Don't be distracted by unfamiliar syntax. it's just a chain of 3 commands:
1=list the table of open files;
2=but only the lines containing "wily" [which I knew was involved];
3=and only the lines containing "egal" [since that would be in the path].

Just to give an idea of the magnitude of data that such simple FC can
handle without writing/compiling code:
 `lsof | wc -l` = 10447 <-- List open Files & count number of lines in table!
I've got 16 workspaces with an average of 5 terminal each, from work
accumulated over 2 weeks. So, "lots of books are open".

A further example shows how reformatting cited text in eg.
">> badly line-broken
> USEnet articles ..." is easily achived

1. replace each EndOfLine with <space>
2. fold the text at word-boundries at eg. '72<LineLen'
3. prepend required eg. ">>>" to each line.

IMO the various CF should be just pulled-off-a-menu:
 an extention of N-O's Tools.

==Chris Glur.

More information about the Oberon mailing list