/* Anagrams, in Jsish */ var datafile = 'unixdict.txt'; if (console.args[0] == '-more' && Interp.conf('maxArrayList') > 500000) datafile = '/usr/share/dict/words'; var words = File.read(datafile).split('\n'); puts(words.length, 'words'); var i, item, max = 0, anagrams = {}; for (i = 0; i < words.length; i += 1) { var key = words[i].split('').sort().join(''); if (!anagrams.hasOwnProperty(key)) { anagrams[key] = []; } var count = anagrams[key].push(words[i]); max = Math.max(count, max); } // display all arrays that match the maximum length for (item in anagrams) { if (anagrams.hasOwnProperty(item)) { if (anagrams[item].length === max) { puts(anagrams[item].join(' ')); } } } /* =!EXPECTSTART!= 25108 words abel able bale bela elba caret carte cater crate trace angel angle galen glean lange alger glare lager large regal elan lane lean lena neal evil levi live veil vile =!EXPECTEND!= */