在OCaml中使用多个参数的函数

oso*_*maz 3 ocaml

我正在尝试编写一个函数来增加int指定数量的mutable .

let increase var:int ref amount = (var := !var+amount;var);;
Run Code Online (Sandbox Code Playgroud)

这就是我提出的,但它会产生错误.这样做的正确方法是什么?

Jef*_*eld 6

你唯一的问题是在类型的规范var.你需要使用括号:

# let increase (var: int ref) amount = var := !var + amount; var;;
val increase : int ref -> int -> int ref = <fun>
Run Code Online (Sandbox Code Playgroud)

对于它的价值,类型规范是可选的.OCaml将推断出类型.

(我个人会考虑让函数返回unit,这会使它类似于内置函数incr.)