# let counter() =
let c = ref 0 in
fun() ->
let _ = c := !c + 1 in
!c ;;
val counter : unit -> unit -> int = <fun>
# let incCounter = counter() ;;
# incCounter() ;;
- : int = 1
# incCounter() ;;
- : int = 2
我不明白爲什麼行let c = ref 0
不會再次調用每次調用incCounter() ;;
時間輸出。看起來fun() ->...
這部分似乎只適用於每次撥打incCounter
的c
。很難理解的這種OCaml的代碼
提示遞增代碼的一個提示:有Pervasives.incr做到這一點,所以第4行可以重寫爲_incr c_(好的,gsg說...) –