我想知道如何通過迭代列表來更新變量的值。例如,假設我想跟蹤列表的變量數量。我可以做類似OCaml通過迭代列表更新值
let list = [1;2;3;4;5]
let length = 0 in
let getCount elmt =
length = length+1 in
List.iter getCount list
,但我得到因爲length = length+1
我比較使用=
我這是有道理的錯誤This expression has type 'a -> bool
。我應該如何更新長度值?
編輯:
我試圖
let wordMap =
let getCount word =
StringMap.add word (1000) wordMap in
List.fold_left getCount StringMap.empty wordlist;;
,但它不知道什麼wordMap是getCount將功能...
? – cago
這只是一個例子。對於我的實際功能,而不是長度,我有一個地圖,我用來存儲元素的出現次數,這意味着我必須做Map.empty才能得到一個空的地圖,然後我必須通過添加來更新地圖它。我不知道該怎麼做。 – jstnchng
在OCaml中,如果你可以:一般你應該避免突變:不要使用可變的'ref'計數器,而是使用'List.fold_left'或'fold_right'來解決這類問題。 – camlspotter