Anagrams: Difference between revisions
Content added Content deleted
(Add Jsish, move a Javascript subheading) |
|||
Line 3,490: | Line 3,490: | ||
[ 'evil', 'levi', 'live', 'veil', 'vile' ]</pre> |
[ 'evil', 'levi', 'live', 'veil', 'vile' ]</pre> |
||
==Alternative Using Reduce== |
===Alternative Using Reduce=== |
||
<lang javascript>var fs = require('fs'); |
<lang javascript>var fs = require('fs'); |
||
var dictionary = fs.readFileSync('unixdict.txt', 'UTF-8').split('\n'); |
var dictionary = fs.readFileSync('unixdict.txt', 'UTF-8').split('\n'); |
||
Line 3,537: | Line 3,537: | ||
["evil","levi","live","veil","vile"] |
["evil","levi","live","veil","vile"] |
||
</lang> |
</lang> |
||
=={{header|Jsish}}== |
|||
From Javascript, nodejs entry. |
|||
<lang javascript>/* 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!= |
|||
*/</lang> |
|||
{{out}} |
|||
<pre>prompt$ jsish -u anagrams.jsi |
|||
[PASS] anagrams.jsi</pre> |
|||
To update the script to pass with a site local words file, just '''jsish -u -update true anagrams.jsi'''. |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |