h := open('unixdict.txt', "r"); anagrams := {}; while not eof(h) loop geta(h, word); if word = om or word = "" then continue; end if; sorted := insertion_sort(word); anagrams{sorted} with:= word; end loop; max_size := 0; max_words := {}; for words = anagrams{sorted} loop size := #words; if size > max_size then max_size := size; max_words := {words}; elseif size = max_size then max_words with:= words; end if; end loop; for w in max_words loop print(w); end loop; -- GNU SETL has no built-in sort() procedure insertion_sort(A); for i in [2..#A] loop v := A(i); j := i-1; while j >= 1 and A(j) > v loop A(j+1) := A(j); j := j - 1; end loop; A(j+1) := v; end loop; return A; end procedure;