2
我正在嘗試編寫一個函數,以按指定的量增加一個可變的int
。OCaml中具有多個參數的函數
let increase var:int ref amount = (var := !var+amount;var);;
這是我想出來的,但它會產生錯誤。什麼是正確的方法來做到這一點?
我正在嘗試編寫一個函數,以按指定的量增加一個可變的int
。OCaml中具有多個參數的函數
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>
對於它的價值,類型規格是可選的。 OCaml會推斷出類型。
(我個人認爲有函數返回unit
,這將使它類似於內置功能incr
)
@gasche:'incr'具有輸入'INT REF - > unit'。它看起來像你的函數返回也是毫無意義的 - 它總是會返回'var' – newacct
的確,我的錯誤。我同意函數返回是毫無意義的。 – gasche