Anagrams: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) (Added Arturo implementation) |
|||
Line 6,380: | Line 6,380: | ||
print_r($ana); |
print_r($ana); |
||
?></lang> |
?></lang> |
||
=={{header|Picat}}== |
|||
Using foreach loop: |
|||
<lang Picat>go => |
|||
Dict = new_map(), |
|||
foreach(Line in read_file_lines("unixdict.txt")) |
|||
Sorted = Line.sort(), |
|||
Dict.put(Sorted, Dict.get(Sorted,"") ++ [Line] ) |
|||
end, |
|||
MaxLen = max([Value.length : _Key=Value in Dict]), |
|||
println(maxLen=MaxLen), |
|||
foreach(_Key=Value in Dict, Value.length == MaxLen) |
|||
println(Value) |
|||
end, |
|||
nl.</lang> |
|||
Output: |
|||
<pre> |
|||
maxLen = 5 |
|||
[alger,glare,lager,large,regal] |
|||
[evil,levi,live,veil,vile] |
|||
[abel,able,bale,bela,elba] |
|||
[caret,carte,cater,crate,trace] |
|||
[angel,angle,galen,glean,lange] |
|||
[elan,lane,lean,lena,neal]</pre> |
|||
Same idea, but shorter version by (mis)using list comprehensions. |
|||
<lang Picat>go2 => |
|||
M = new_map(), |
|||
_ = [_:W in read_file_lines("unixdict.txt"),S=sort(W),M.put(S,M.get(S,"")++[W])], |
|||
X = max([V.len : _K=V in M]), |
|||
println(maxLen=X), |
|||
[V : _=V in M, V.len=X].println.</lang> |
|||
Output: |
|||
<pre> |
|||
maxLen = 5 |
|||
[[evil,levi,live,veil,vile],[abel,able,bale,bela,elba],[caret,carte,cater,crate,trace],[angel,angle,galen,glean,lange],[elan,lane,lean,lena,neal],[alger,glare,lager,large,regal]]</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |