我正在尝试编写一个函数来将可变int
增加指定的量。
let increase var:int ref amount = (var := !var+amount;var);;
这是我提出的,但它会产生错误。这样做的正确方法是什么?
答案 0 :(得分:6)
唯一的问题是var
类型的规范。你需要使用括号:
# let increase (var: int ref) amount = var := !var + amount; var;;
val increase : int ref -> int -> int ref = <fun>
对于它的价值,类型规范是可选的。 OCaml将推断出类型。
(我个人会考虑让函数返回unit
,这会使它类似于内置函数incr
。)