我使用ref
计数来计算函数执行的次数,但是如果我想摆脱参考的话呢?我是ocaml的noobie,请给我一些建议,这是我得到的:
let count =ref 0;;
let rec addtive n=
if n<9 then count
else(
incr count;
addtive(sum(digit(n)))
) ;;
# a 551515;;
- : int ref = {contents = 2}
但我希望得到像
-: int = 2
答案 0 :(得分:3)
只需在!
子句中添加then
即可从ref
中提取值:
let count =ref 0;;
let rec addtive n=
if n<9 then !count
else(
incr count;
addtive(sum(digit(n)))
) ;;
答案 1 :(得分:0)
您应该将计数作为第二个参数传递(必要时定义辅助方法):
let additive n =
let rec helper n count =
if n<9 then count
else helper (sum (digit n)) (count + 1)
in
helper n 0