RosettaCodeData/Task/Letter-frequency/Picat/letter-frequency.picat
2023-07-01 13:44:08 -04:00

17 lines
478 B
Text

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).