Return OCAML 中参数的更改值
Return Changed value of Parameter in OCAML
let rule1 m =
m = m/2;
m
rule1(250) 应该 return 125 而不是 returns 250 .
如何return更新参数值?
你确定 m
是可变的吗? m = ..
语句不会更新提供的参数。返回更新后的值是一种选择吗?
let rule1 m =
m/2
如果您真的希望改变绑定的值,该绑定必须是 ref
或具有可变字段的记录类型(ref
是 with 的一个具体示例方便的语法糖。)
let m = ref 12 in
(m := !m / 2;
print_int !m;
print_newline ())
但是,像这样使用可变状态可能意味着您正在编写非惯用的 OCaml 代码,并且您缺少一些东西:更优雅的解决方案,或者在学习的情况下,算法课。
当然,通常两者都是。我说的是亲身经历。
let rule1 m =
m = m/2;
m
rule1(250) 应该 return 125 而不是 returns 250 .
如何return更新参数值?
你确定 m
是可变的吗? m = ..
语句不会更新提供的参数。返回更新后的值是一种选择吗?
let rule1 m =
m/2
如果您真的希望改变绑定的值,该绑定必须是 ref
或具有可变字段的记录类型(ref
是 with 的一个具体示例方便的语法糖。)
let m = ref 12 in
(m := !m / 2;
print_int !m;
print_newline ())
但是,像这样使用可变状态可能意味着您正在编写非惯用的 OCaml 代码,并且您缺少一些东西:更优雅的解决方案,或者在学习的情况下,算法课。
当然,通常两者都是。我说的是亲身经历。