OCaml中具有多个参数的函数

OCaml中具有多个参数的函数,ocaml,Ocaml,我正在尝试编写一个函数,以将可变的int增加指定的量 let increase var:int ref amount = (var := !var+amount;var);; 这是我想到的,但它会产生错误。正确的方法是什么?您唯一的问题是var类型的规范。您需要使用括号: # let increase (var: int ref) amount = var := !var + amount; var;; val increase : int ref -> int -> int re

我正在尝试编写一个函数,以将可变的
int
增加指定的量

let increase var:int ref amount = (var := !var+amount;var);;

这是我想到的,但它会产生错误。正确的方法是什么?

您唯一的问题是
var
类型的规范。您需要使用括号:

# let increase (var: int ref) amount = var := !var + amount; var;;
val increase : int ref -> int -> int ref = <fun>
#增加(var:int-ref)金额=var:=!var+金额;var;;
val增加:整数参考->整数->整数参考=
值得一提的是,类型规范是可选的。OCaml将推断类型


(我个人认为函数返回<代码>单元< /代码>,这将类似于内置函数<代码> INCR。)

@ GasChe:<代码> INCR/C> >类型<代码> int REF>单元< /代码>。看起来函数的返回也是毫无意义的——它总是返回
var
,真的,我错了。我同意函数返回是无意义的。