Ocaml 返回单位而不是整数数组

Ocaml 返回单位而不是整数数组,ocaml,typeerror,Ocaml,Typeerror,我有以下代码: let rec dec_to_bin a b c = match a with | 0 -> b | _ -> if a mod 2 = 0 then dec_to_bin (a/2)(b)(c+1) else b.(c) <- 1;dec_to_bin ((a-1)/2)(b)(c+1);; 我认为问题来自于编译器只执行的事实:b.(c)你的问题是因为if的优先级高于(您可以通过向上滚动一点来查看优先级表)。因此,如果。。。否则…仅解释为向上移动

我有以下代码:

let rec dec_to_bin a b c =
  match a with
  | 0 -> b
  | _ -> if a mod 2 = 0 then dec_to_bin (a/2)(b)(c+1) else b.(c) <- 1;dec_to_bin ((a-1)/2)(b)(c+1);;

我认为问题来自于编译器只执行的事实:
b.(c)你的问题是因为
if
的优先级高于
(您可以通过向上滚动一点来查看优先级表)。因此,
如果。。。否则…
仅解释为向上移动到
。如果要将多个“语句”作为
else
表达式执行,则必须将它们括在括号中,
(…)
开始。。。结束
(它们是相同的)。

您的问题是因为
如果
的优先级高于
(您可以通过向上滚动一点来查看优先级表)。因此,
如果。。。否则…
仅解释为向上移动到
。如果要将多个“语句”作为
else
表达式执行,则必须将它们括在括号中,
(…)
开始。。。结束
(它们是相同的)。

a、b和c最初是什么?a是整数,b是数组,c是整数a、b和c最初是什么?a是整数,b是数组,c是整数提示:使用自动缩进ocaml并使用大量换行的编辑器,当然是在每个“;”之后。缩进将显示您离开了else分支。提示:使用自动缩进ocaml的编辑器,并使用大量换行符,当然是在每个“;”之后。缩进将显示您离开了else分支。
Error: This expression has type unit but an expression was expected of type
         int array