2013-10-28 59 views
1

我正在编写的程序来计算钟号, 这是我在OCaml中的第一个大程序。 我想使用循环while循环虽然,但有语法错误。 请纠正它。谢谢。OCaml问题循环回路

我使用的网站http://try.ocamlpro.com/

let rec factorial n = 
if n < 2 
    then 1 
else 
    n * factorial(n-1) 

let rec newton n k = 
factorial n/(factorial k * factorial (n-k)) 

let bell = [|1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0|] 

let i = ref 2 
let k = ref 0 
let x = ref 0 
let z = ref 0 
let s = ref 0 

在这里你需要选择数ü要calc下例如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 
  • 应该使用民到calc下Bell数,但我第一次我,我想就INT

回答

1

的工作方案,您可以尝试第一次done后添加;

+0

@czarnywdowiec请接受答案,当它解决您的问题! –