OCaml如何更改迭代器的值

时间:2014-01-06 14:05:54

标签: loops ocaml

我试图修改for的迭代器值。 一个意思是:

for i = 0 to n do
   while (condition) do
      (*how in this place increment i ?*)

2 个答案:

答案 0 :(得分:6)

OCaml变量是不可变的。您无法在i循环中更改for的值。正如cago所示,您可以使用引用(包含可变值的不可变变量)。

然而,研究OCaml的一个原因是学习功能编程,即学习如何在不改变变量值的情况下进行计算。所以你可能想找另一种方法来解决你的问题。

答案 1 :(得分:2)

你可以做两个while循环:

let i = ref 0 in 
while !i < n do
  while (* condition *) do
      i := !i + 2
  done;
  incr i;
done