ocaml中的阶乘函数的命令式版本有什么问题? 让impfac i= 设l=ref i in 让结果=参考1英寸 设k=ref2 in 虽然k

ocaml中的阶乘函数的命令式版本有什么问题? 让impfac i= 设l=ref i in 让结果=参考1英寸 设k=ref2 in 虽然k,ocaml,Ocaml,错误消息是: let impfac i = let l = ref i in let result = ref 1 in let k = ref 2 in while !k < !l do result := !result * !k k:=!k+1 done; !result 让impfac i= 设l=ref i in 让结果=参考1英寸 设k=ref2 in 虽然k

错误消息是:

let impfac i = 
  let l = ref i in
  let result = ref 1 in
  let k = ref 2 in
  while !k < !l do
    result := !result * !k
      k:=!k+1
  done;
  !result
让impfac i=
设l=ref i in
让结果=参考1英寸
设k=ref2 in
虽然k<!我知道
结果:=!结果*!K
k:=!k+1
完成;
!结果;;
字符121-123:
结果:=!结果*!K
^^
错误:此表达式不是函数;它无法应用
#
第一行末尾缺少一个分号。因此,它被解读为:

result := !result * !k
  k:=!k+1
i、 它认为你在试图呼叫
!k
k:=!k+1
作为其参数


这也是为什么您的编辑器在行中缩进了
k:=!k+1
比其上方的线更靠右。这应该是语法有问题的第一个迹象。

完美!!!问题解决了!!!谢谢你的帮助!!!我喜欢缩进提示!!!
result := !result * !k
  k:=!k+1
result := !result * (!k k:=!k+1)