OCaml- if-else 块中的局部变量?
OCaml- local variables in if-else block?
如何在 if-else 块中创建局部变量? (如果这在 Ocaml 中有效)
这是我在 OCaml 中尝试执行的 C 示例代码:
if (1 == 1) {
return 3;
} else {
int j = 5;
return j;
}
这是有效的,但不是很有用。
let i=1;;
if i = 1 then
3
else (
let j=5 in
j
) ;;
- : 整数 = 3
你必须意识到 OCaml 中的变量是不可变的,即它们在声明时绑定到一个值,并且该值永远不会改变。
如果您对 "variable" 的这个含义感到满意,那么您可以在表达式可以出现的任何地方声明局部变量。
形式的表达式
let v = expr1 in expr2
声明了一个 expr2
的局部变量 v
。它的值(永远无法更改)由 expr1
.
给出
你可以在任何地方使用这种表达式,因此你可以在 if 表达式中使用它。
C 代码的相当忠实的翻译应该是这样的:
if 1 = 1 then
3
else
let j = 5 in
j
如何在 if-else 块中创建局部变量? (如果这在 Ocaml 中有效)
这是我在 OCaml 中尝试执行的 C 示例代码:
if (1 == 1) {
return 3;
} else {
int j = 5;
return j;
}
这是有效的,但不是很有用。
let i=1;;
if i = 1 then
3
else (
let j=5 in
j
) ;;
- : 整数 = 3
你必须意识到 OCaml 中的变量是不可变的,即它们在声明时绑定到一个值,并且该值永远不会改变。
如果您对 "variable" 的这个含义感到满意,那么您可以在表达式可以出现的任何地方声明局部变量。
形式的表达式let v = expr1 in expr2
声明了一个 expr2
的局部变量 v
。它的值(永远无法更改)由 expr1
.
你可以在任何地方使用这种表达式,因此你可以在 if 表达式中使用它。
C 代码的相当忠实的翻译应该是这样的:
if 1 = 1 then
3
else
let j = 5 in
j