如何 return ocaml 中 if else 语句的值?
How to return value of if else statement in ocaml?
我想要 return ocaml 中 if else 语句的值。
例如,如果我这样做
let myvalue = if my_condition != 0 then do_this else do_this_instead
但这似乎没有将 do_this 或 do_this 的结果存储_instead 在 myvalue 中。如果我在 C
中这样做
if(my_condition)
{
return 1 + 1;
} else {
return 1 - 1;
}
我想实现同样的效果,不仅执行了 if-else 逻辑,而且还有一个 return 与捕获并存储的已执行语句关联的值.我如何在 ocaml 中执行此操作?
如果我按照...
# let myvalue = if 2 > 1 then 2 else 1;;
val myvalue : int = 2
# myvalue;;
- : int = 2
您还期待什么?
if-then-else
是一个表达式结构,表达式 produce/have values
.
否则,如果您希望为相应的 then
和 else
构造中的值调用其他函数,我们可以尝试以下方式...
# let my_condition = 2 in
let do_this () = 1 + 1 in
let do_this_instead () = 1 - 1 in
myvalue = if my_condition != 0 then do_this () else do_this_instead ();;
- : bool = true
# myvalue;;
- : int = 2
我想要 return ocaml 中 if else 语句的值。
例如,如果我这样做
let myvalue = if my_condition != 0 then do_this else do_this_instead
但这似乎没有将 do_this 或 do_this 的结果存储_instead 在 myvalue 中。如果我在 C
中这样做if(my_condition)
{
return 1 + 1;
} else {
return 1 - 1;
}
我想实现同样的效果,不仅执行了 if-else 逻辑,而且还有一个 return 与捕获并存储的已执行语句关联的值.我如何在 ocaml 中执行此操作?
如果我按照...
# let myvalue = if 2 > 1 then 2 else 1;;
val myvalue : int = 2
# myvalue;;
- : int = 2
您还期待什么?
if-then-else
是一个表达式结构,表达式 produce/have values
.
否则,如果您希望为相应的 then
和 else
构造中的值调用其他函数,我们可以尝试以下方式...
# let my_condition = 2 in
let do_this () = 1 + 1 in
let do_this_instead () = 1 - 1 in
myvalue = if my_condition != 0 then do_this () else do_this_instead ();;
- : bool = true
# myvalue;;
- : int = 2