ocaml 中的 for 循环

我想做类似的事情

let switchgraph cases =

let g = Graph.makeGraph() in
let g = (Graph.addNode g 1) in
for i = 2 to cases do 
    let g = (Graph.addNode g i) in
done
g

但显然,这是不可能的。我还能如何做到这一点。

艾蒂安·米隆

您需要解决两件事:

  • 您需要为此使用引用(请参阅ref,:=!),因为let绑定是不可变的
  • 要对两个表达式进行排序,您需要使用 ;

这样的事情应该工作:

let switchgraph cases =
    let g = ref (Graph.makeGraph()) in
    g := Graph.addNode (!g) 1;
    for i = 2 to cases do
        g := Graph.addNode (!g) i
    done;
    !g

请注意,这g是引用和!g值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章