如何根据Ocaml中的条件指定值?
我想表达以下几点:如何根据Ocaml中的条件指定值?,ocaml,Ocaml,我想表达以下几点: if b then let value = ... in else let value = .... in let double = value * 2 但是Ocaml似乎不允许这种语法。如果我不想重复let double=value*2部分,我是否必须定义value作为参考 多谢各位 您的问题在于,您认为这是强制性的(有条件地分配给变量),而不是功能性的(将名称绑定到表达式的结果): 如前所述,功能性方法通常更可取 但是,在某些情况下,您可能希望使用ocaml的命
if b then
let value = ... in
else
let value = .... in
let double = value * 2
但是Ocaml似乎不允许这种语法。如果我不想重复let double=value*2
部分,我是否必须定义value
作为参考
多谢各位 您的问题在于,您认为这是强制性的(有条件地分配给变量),而不是功能性的(将名称绑定到表达式的结果):
如前所述,功能性方法通常更可取 但是,在某些情况下,您可能希望使用ocaml的命令式功能:
let value = ref 2;;
begin
if 1=2 then
value := 4
else
value := 3
end;
let double = !value * 2
请注意,需要确保if分支和else分支中的表达式类型必须相同(此处为unit),否则编译器会抱怨(当然)
let value = ref 2;;
begin
if 1=2 then
value := 4
else
value := 3
end;
let double = !value * 2