loops - OCaml问题循环循环

标签 loops while-loop syntax-error ocaml

我正在编写程序以计算贝尔数,
这是我在OCaml中的第一个大型程序。
我想在循环While中使用循环While,但是存在语法错误。
请更正。谢谢。

我正在使用网站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

在这里您需要选择您要计算的数字,例如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
  • 应该使用Num来计算贝尔数,但是我首先我想使程序在int
  • 上运行

    最佳答案

    您可以尝试在第一个;之后添加done

    关于loops - OCaml问题循环循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639001/

    相关文章:

    java - while 循环在不同的项目中工作方式不同,但代码结构相同?

    java - 循环和操作

    loops - Ansible 2.7.5 |错误! 'set_fact'不是Play的有效属性

    python - tensorflow 中循环的自定义损失

    javascript - 使用 javascript 和 for 循环在页面加载后预加载图像

    firebase - 在构建时,StreamBuilder被多次调用

    c - 文本文件内的文本单词搜索 - C 编程

    linux - shell 代码中的语法错误

    javascript - 在数组内传递数组

    java - 如何在不同的方法中放置一个条件来比较决定是否执行任务的元素?