module S = String;;
module HT = Hashtbl;;
let histogram s =
let charFreqs = HT.create 126 in
S.iter (fun c ->
let tmp =
try HT.find charFreqs c
with Not_found -> 0 in
HT.replace charFreqs c (tmp+1)
) s;;
let str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";;
let charFreqs = histogram str;;
您的功能返回S.ITER的结果,即:
histogram
:
unit
val iter : (char -> unit) -> string -> unit
用作替代方案:一种纯粹的功能方法。
let histogram s =
let charFreqs = HT.create 126 in
S.iter (fun c ->
let tmp =
try HT.find charFreqs c
with Not_found -> 0 in
HT.replace charFreqs c (tmp+1)
) s;
charFreqs;;
Map