58 lines
1.1 KiB
Text
58 lines
1.1 KiB
Text
$ENTRY Go {
|
|
, <ReadFile 1 'unixdict.txt'>: e.Dict
|
|
, <Select (Ordered) e.Dict>: e.Ordered
|
|
, <Reduce (Max) <Each (Length) e.Ordered>>: s.MaxLength
|
|
, <Select (IsLength s.MaxLength) e.Ordered>: e.LongestOrdered
|
|
= <Each (Prout) e.LongestOrdered>;
|
|
};
|
|
|
|
ReadFile {
|
|
s.Chan e.File =
|
|
<Open 'r' s.Chan e.File>
|
|
<ReadFile (s.Chan)>;
|
|
(s.Chan), <Get s.Chan>: {
|
|
0 = <Close s.Chan>;
|
|
e.Line = (e.Line) <ReadFile (s.Chan)>;
|
|
};
|
|
};
|
|
|
|
Reduce {
|
|
(e.F) t.1 = t.1;
|
|
(e.F) t.1 e.2 = <Mu e.F t.1 <Reduce (e.F) e.2>>;
|
|
};
|
|
|
|
Max {
|
|
s.1 s.2, <Compare s.1 s.2>: {
|
|
'+' = s.1;
|
|
e.X = s.2;
|
|
};
|
|
};
|
|
|
|
Each {
|
|
(e.F) = ;
|
|
(e.F) (e.1) e.2 = <Mu e.F e.1> <Each (e.F) e.2>;
|
|
};
|
|
|
|
Select {
|
|
(e.F) = ;
|
|
(e.F) (e.1) e.2, <Mu e.F e.1>: {
|
|
True = (e.1) <Select (e.F) e.2>;
|
|
False = <Select (e.F) e.2>;
|
|
};
|
|
};
|
|
|
|
Ordered {
|
|
s.1 = True;
|
|
s.1 s.2 e.3, <Compare <Ord s.1> <Ord s.2>>: {
|
|
'+' = False;
|
|
s.4 = <Ordered s.2 e.3>;
|
|
};
|
|
e.1 = False;
|
|
};
|
|
|
|
IsLength {
|
|
s.Len e.1, <Lenw e.1>: s.Len e.1 = True;
|
|
s.Len e.1 = False;
|
|
};
|
|
|
|
Length { e.1, <Lenw e.1>: s.Len e.1 = s.Len; };
|