47 lines
997 B
Text
47 lines
997 B
Text
import system'routines;
|
|
import system'calendar;
|
|
import system'io;
|
|
import system'collections;
|
|
import extensions;
|
|
import extensions'routines;
|
|
import extensions'text;
|
|
import algorithms;
|
|
|
|
extension op
|
|
{
|
|
string normalized()
|
|
= self.toArray().ascendant().summarize(new StringWriter());
|
|
}
|
|
|
|
public program()
|
|
{
|
|
var start := now;
|
|
|
|
auto dictionary := new Map<string,object>();
|
|
|
|
File.assign("unixdict.txt").forEachLine::(word)
|
|
{
|
|
var key := word.normalized();
|
|
var item := dictionary[key];
|
|
if (nil == item)
|
|
{
|
|
item := new ArrayList();
|
|
dictionary[key] := item
|
|
};
|
|
|
|
item.append(word)
|
|
};
|
|
|
|
dictionary.Values
|
|
.quickSort::(former,later => former.Item2.Length > later.Item2.Length )
|
|
.top(20)
|
|
.forEach::(pair){ console.printLine(pair.Item2) };
|
|
|
|
var end := now;
|
|
|
|
var diff := end - start;
|
|
|
|
console.printLine("Time elapsed in msec:",diff.Milliseconds);
|
|
|
|
console.readChar()
|
|
}
|