Anagrams: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 314: | Line 314: | ||
>>></lang> |
>>></lang> |
||
{{trans|Haskell}} |
|||
{{works with|Python|2.6}} sort and then group using groupby() |
{{works with|Python|2.6}} sort and then group using groupby() |
||
<lang python>>>> import urllib, itertools |
<lang python>>>> import urllib, itertools |
||
Line 351: | Line 352: | ||
count = anagram.values.map {|ana| ana.length}.max |
count = anagram.values.map {|ana| ana.length}.max |
||
anagram.each_value do |ana| |
|||
for ana in anagram.values |
|||
if ana.length >= count |
if ana.length >= count |
||
p ana |
p ana |
||
Line 363: | Line 364: | ||
["angel", "angle", "galen", "glean", "lange"] |
["angel", "angle", "galen", "glean", "lange"] |
||
["caret", "carte", "cater", "crate", "trace"] |
["caret", "carte", "cater", "crate", "trace"] |
||
{{trans|Haskell}} |
|||
{{works with|Ruby|1.8.7+}} sort and then group using group_by |
|||
<lang ruby>require 'open-uri' |
|||
anagram = nil |
|||
open('http://www.puzzlers.org/pub/wordlists/unixdict.txt') do |f| |
|||
anagram = f.read \ |
|||
.split \ |
|||
.sort_by {|s| s.each_char.sort} \ |
|||
.group_by {|s| s.each_char.sort} |
|||
end |
|||
count = anagram.each_value.map {|ana| ana.length}.max |
|||
anagram.each_value do |ana| |
|||
if ana.length >= count |
|||
p ana |
|||
end |
|||
end</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |