letter_frequency.sf 390 B

12345678910111213141516
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Letter_frequency#Sidef
  4. #
  5. func letter_frequency(File file) {
  6. file.read.chars.grep{.match(/[[:alpha:]]/)} \
  7. .group_by {|letter| letter.downcase} \
  8. .map_val {|_, val| val.len} \
  9. .sort_by {|_, val| -val}
  10. }
  11.  
  12. var top = letter_frequency(File(__FILE__))
  13. top.each{|pair| say "#{pair[0]}: #{pair[1]}"}