「配列の配列」のことをジャグ配列と呼び、多次元配列とはまた別物らしい。
このジャグ配列に、罠があった。
こう定義してしまうと、
let arr = Array.create 3 (Array.zeroCreate 4)
例えばarr.[2].[1] <- 99
と代入すると、
arr.[0].[1]
もarr.[1].[1]
も99
になってしまう。
正しくはこう定義する。
let arr = Array.init 3 (fun _ -> Array.zeroCreate 4)
参考記事
https://stackoverflow.com/questions/34252606/array-create-and-jagged-array%EF%BC%89