所以我在sml中有一个函数,它接受一个整数值并引用它。 如何为变量余额分配新值,然后返回该余额?在Deposit和WithDraw模式中?
datatype Message = GetBalance | Deposit of int | WithDraw of int;
fun opening_account init_amt = let val balance = ref init_amt
in fn GetBalance => !balance
| Deposit x => balance = !balance + x
| WithDraw x => balance = !balance - x
end;
答案 0 :(得分:1)
要更新参考单元格,请使用:=
。即:
balance := !balance + x
如果您希望同时更新余额,然后返回新值,只需使用;
一个接一个地执行:
(balance := !balance + x; !balance)