我是OCaml的新手。在使用数组编码时,我遇到了一个我无法理解的问题。
以下是代码:
let a = Array.create 5 (Array.create 5 0);
a.(0).(1) <- 1
我只是想将1分配给a[0][1],但接着发生了一些事情:第一列中的所有元素都被赋值。也就是说,在上面的代码执行后,a[0][1]、a[1][1]、a[2][1]、a[3][1]和a[4][1]都等于1。
如果我使用以下方式创建数组:
Array.make_matrix 5 5 0
everything is fine.
My environment:
Ubuntu 13.10
Ocaml 4.01.0
open Core.Std