Loops OCaml问题循环中的循环

Loops OCaml问题循环中的循环,loops,while-loop,syntax-error,ocaml,Loops,While Loop,Syntax Error,Ocaml,我正在写一个计算钟号的程序, 这是我在OCaml中的第一个大程序。 我想在循环中使用loop While,但是有语法错误。 请改正它。谢谢 我正在使用这个网站 让rec阶乘n= 如果n

我正在写一个计算钟号的程序, 这是我在OCaml中的第一个大程序。 我想在循环中使用loop While,但是有语法错误。 请改正它。谢谢

我正在使用这个网站

让rec阶乘n=
如果n<2
那么1
其他的
n*阶乘(n-1)
让我们记录牛顿n k=
阶乘n/(阶乘k*阶乘(n-k))
设bell=[|1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;]
设i=ref 2
设k=ref0
设x=ref 0
设z=ref0
设s=ref0
在这里,您需要选择要计算的数字,例如4

let n = ref 4

if !n != 0 || !n != 1 then
    while !i <= !n do   
         while !k <= (!i-1) do
                x := newton (!i-1) !k;
                s := !s + (!x * bell.(!k));
                k := !k + 1 ;
                z := !k + 1
             done   
      s:=0;
      i:= !i + 1;
   done
else 
bell.(!n)<-1
设n=ref 4
如果!n!=0 || !n!=1那么

虽然i您可以尝试添加
第一次
完成后

您可以尝试添加
第一次
完成后

@czarnywdowiec请在解决您的问题时接受Answare@czarnywdowiec请接受Answare解决您的问题!
let n = ref 4

if !n != 0 || !n != 1 then
    while !i <= !n do   
         while !k <= (!i-1) do
                x := newton (!i-1) !k;
                s := !s + (!x * bell.(!k));
                k := !k + 1 ;
                z := !k + 1
             done   
      s:=0;
      i:= !i + 1;
   done
else 
bell.(!n)<-1