Letter frequency: Difference between revisions

m (→‎{{header|Raku}}: respond to some over excited exposition)
Line 4,725:
print_r(array_count_values(str_split(file_get_contents($argv[1]))));
?></lang>
 
=={{header|Picat}}==
Sorting on the frequency (decreasing).
<lang Picat>go =>
% removing '\n' first
Chars = delete_all(read_file_chars("unixdict.txt"),'\n'),
M = letter_freq(Chars),
println(M.sort_map(values).reverse).
 
% Get the letter frequency
letter_freq(S) = Map =>
Map = new_map(),
foreach(C in S)
Map.put(C,Map.get(C,0)+1)
end.
 
% Different sorting function on maps
sort_map(Map,values) = [K=V:_=(K=V) in sort([V=(K=V): K=V in Map])].
sort_map(Map,keys) = sort([KV : KV in Map]).
sort_map(Map) = sort_map(Map,keys).</lang>
 
Result:
<pre>[e = 20144,a = 16421,i = 13980,r = 13436,t = 12836,o = 12738,n = 12097,s = 10210,
l = 10061,c = 8216,u = 6489,m = 5828,d = 5799,p = 5516,h = 5208,g = 4129,b = 4115,
y = 3633,f = 2662,w = 1968,k = 1925,v = 1902,x = 617,z = 433,j = 430,q = 378,
' = 105,. = 6,& = 6,1 = 2,9 = 1,8 = 1,7 = 1,6 = 1,5 = 1,4 = 1,3 = 1,2 = 1,0 = 1]</pre>
 
=={{header|PicoLisp}}==
495

edits