Advertisement
Guest User

Untitled

a guest
Jul 4th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let freq str =
  2.  
  3.   let len = String.length str in
  4.   let freqs = ref [ref ('a', 0)] in
  5.  
  6.   for i=0 to (len-1) do
  7.     let tempchar = String.get str i in
  8.     try
  9.       let ch = (List.find (fun x-> (fst !x) == tempchar) !freqs) in
  10.       ch := ((fst !ch), (snd !ch)+1)
  11.     with
  12.     Not_found -> freqs:= !freqs@[ref (tempchar, 1)]
  13.   done;
  14.  
  15.   !freqs
  16. ;;
  17. (*
  18. # freq "i hope this shit works!";;
  19. - : (char * int) ref list =
  20. [{contents = ('i', 3)}; {contents = (' ', 4)}; {contents = ('h', 3)};
  21.  {contents = ('o', 2)}; {contents = ('p', 1)}; {contents = ('e', 1)};
  22.  {contents = ('t', 2)}; {contents = ('s', 3)}; {contents = ('w', 1)};
  23.  {contents = ('r', 1)}; {contents = ('k', 1)}; {contents = ('!', 1)}]
  24. #
  25. *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement