Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OCaml中数学运算语法错误后的if语句_Ocaml - Fatal编程技术网

OCaml中数学运算语法错误后的if语句

OCaml中数学运算语法错误后的if语句,ocaml,Ocaml,嗨,我是OCaml新手,正在解决一个问题。下面的方法不是我必须要做的,但是我已经将代码中的错误缩小到了这个范围。我想知道如果我去掉x=x*,为什么它会起作用。2.0但当我添加它时,if语句出现语法错误 让idk(x:float)= x=x*。2 如果(x>0.0),则为真,否则为假;; 我怀疑你在想x=x*。2.0作为更改x值的语句。但在OCaml中,变量的值不能更改 在OCaml表达式中,=是相等比较运算符。所以x=x*。2.0是一个布尔表达式。也就是说,它要么是真的,要么是假的 由于您不希望

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

让idk(x:float)=
x=x*。2
如果(x>0.0),则为真,否则为假;;

我怀疑你在想
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
为了得到你看得远的效果(我认为),你可以写这样的东西:

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

我怀疑你在想
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
为了得到你看得远的效果(我认为),你可以写这样的东西:

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

另外,
(local_x>0.0)
也是一个可以直接返回的布尔表达式。如果存在
,则无需
,并且不必指定x的类型:
让idk x=let local\u x=x*。2.0英寸(本地_x>0.0)
。当然,和
2.0*。x>0.0
实际上与
x>0.0
相同。因此,可以编写整个函数
让idk x=x>0.0
。甚至更短,
let idk=((另外
(local_x>0.0)
也是一个可以直接返回的布尔表达式。如果存在
,则不需要
,并且不必指定x的类型:
let idk x=let local_x=x*.2.0 in(local_x>0.0)
。当然,而且
2.0*.x>0.0
实际上与
x>0.0
相同。因此可以编写整个函数
让idk x=x>0.0
。甚至更短,
让idk=((