首页 > 解决方案 > 数学运算后的 if 语句 OCaml 中的语法错误

问题描述

嗨,我是 OCaml 的新手,正在解决一个问题。下面的方法不是我必须做的,但我已将代码中的错误缩小到这一点。我想知道如果我拿走 x = x * 为什么它会起作用。2.0 但是当我添加它时,我在 if 语句上得到一个语法错误

let idk (x: float) =
x = x *. 2.0
if (x > 0.0) then true else false ;;

标签: ocaml

解决方案


我怀疑您正在考虑x = x *. 2.0更改x. 但是在 OCaml 中,变量的值是不能改变的。

在 OCaml 表达式=中是相等比较运算符。x = x *. 2.0布尔表达式也是如此。即,它是真或假的东西。

由于您真的不希望两个表达式接在一起,因此语法错误的详细信息可能没有用。

尽管您不能更改变量的值,但您可以拥有任意数量的局部变量。声明局部变量的方式如下:

let my_local_variable = expression1 in expression2

为了得到你看起来很远的效果(我认为),你可以写这样的东西:

let idk (x: float) =
   let local_x = x *. 2.0 in
   if (local_x > 0.0) then true else false

推荐阅读