RosettaCodeData/Task/Ordered-words/SETL/ordered-words.setl
2024-07-13 15:19:22 -07:00

20 lines
540 B
Text

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;