我试图修改for的迭代器值。 一个意思是:
for i = 0 to n do
while (condition) do
(*how in this place increment i ?*)
答案 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