integer fn = open("unixdict.txt","r") sequence words = {}, anagrams = {}, last="", letters object word integer maxlen = 1 while 1 do word = trim(gets(fn)) if atom(word) then exit end if if length(word) then letters = sort(word) words = append(words, {letters, word}) end if end while close(fn) words = sort(words) for i=1 to length(words) do {letters,word} = words[i] if letters=last then anagrams[$] = append(anagrams[$],word) if length(anagrams[$])>maxlen then maxlen = length(anagrams[$]) end if else last = letters anagrams = append(anagrams,{word}) end if end for puts(1,"\nMost anagrams:\n") for i=1 to length(anagrams) do last = anagrams[i] if length(last)=maxlen then for j=1 to maxlen do if j>1 then puts(1,", ") end if puts(1,last[j]) end for puts(1,"\n") end if end for