我遇到ocaml問題。OCaml中的副作用和頂級表達式
我想創建一個函數,每次我調用它時將增加我的計數器,並用計數器編號連接我的vargen字符串並返回此新字符串。
我做什麼都不成功是:
let (counter : int ref) = ref 0;;
let (vargen : string) = "_t";;
let tmp = incr counter;ref (vargen^string_of_int !counter);;
Printf.printf "%s\n" !tmp;;
Printf.printf "%s\n" !tmp;;
Printf.printf "%s\n" !tmp;;
Printf.printf "%s\n" !tmp;;
但我的輸出總是:
_t1
_t1
_t1
_t1
什麼我的輸出應該是:
_t0
_t1
_t2
_t3
解決任何想法我問題guyz?
這一切。
非常好的解釋,現在我明白了爲什麼我的程序不工作。 – tsukanomon