我是OCaml的新手,正在尝试从单词列表中创建一个wordcount。对于每个单词,我都试图这样做:
let check x = if StringMap.mem x then y = StringMap.find x testMap (* I want to add one to this value *)
else
let testMap = StringMap.add x 1 testMap ;;
除了在这段代码中出错外,我很确定我的逻辑也有点错误。我是函数式编程的新手,所以任何帮助都会很棒。
答案 0 :(得分:1)
check
是一张新地图;原始地图未受影响。
要取得进展,您需要跟踪地图的当前值。
let check : string -> StringMap.t -> StringMap.t
= fun string map ->
if StringMap.mem string map
then let y = StringMap.find string map in
(* do something with y *)
else (* add a binding between string and 1 *)
的一种可能性是
{{1}}
您需要完成两个评论部分。