program ordered_words; dict := read_dict "unixdict.txt"; ordereds := {word : word in dict | ordered word}; maxlen := max/{#word : word in ordereds}; loop for word in ordereds | #word = maxlen do print(word); end loop; op read_dict(file); dictfile := open(file, "r"); dict := {getline(dictfile) : until eof(dictfile)}; close(dictfile); return dict; end op; op ordered(word); return True and/[word(i-1) <= word(i) : i in [2..#word]]; end op; end program;