2017-02-19 5 views
1

私はOCamlを初めて使用しており、単語のリストから単語カウントを作成しようとしています。各単語について、私はこれを行うにしようとしています:Ocaml StringMapに単語が存在するかどうかを調べる

別にこのコードでエラーが発生してから
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 ;; 

、私は、私も少し間違ったロジックを持っているかなり確信しています。私は関数型プログラミングに新しいので、どんな助けも素晴らしいだろう。

答えて

1

StringMap.addは新しい地図です。元の地図はそのままです。

進捗状況を確認するには、マップの現在の値を追跡する必要があります。

checkための一つの可能​​性は

次の2つのコメントの部分を完了する必要が
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 *) 

です。

関連する問題