3

int指定された量だけミュータブルをインクリメントする関数を作成しようとしています。

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

これは私が思いついたものですが、エラーが発生します。それを行う正しい方法は何ですか?

4

1 に答える 1

6

あなたの唯一の問題は、 の型の仕様にありvarます。括弧を使用する必要があります。

# let increase (var: int ref) amount = var := !var + amount; var;;
val increase : int ref -> int -> int ref = <fun>

価値があるのは、型指定はオプションです。OCaml は型を推測します。

(個人的には、関数 returnunitを使用することを検討します。これにより、組み込み関数に類似したものになりますincr。)

于 2012-12-29T00:38:34.733 に答える