私はOCamlが初めてで、の概念を理解しようとしていmutable record field
ます。
レコードの配列を作成したいのですが、そのレコードにはブール型の可変フィールドが含まれています。だから私は次のようなことをしました:
type t = {i: int; mutable b: bool};;
レコードの「b」フィールドの値を変更できるようにしたいので、入れますmutable
let m = Array.make 10 ({i = 5; b = false});;
ここでは、配列の最初のインデックスにあるレコードのbフィールドを設定しようとしています。
(Array.get m 0).b <- true;;
問題は、私がやりたいことです。配列のすべてのレコードの「b」フィールドが設定されますが、これは私が望むものではありません。
同じレコードの可変フィールドは同じメモリ配置を共有していますか? 特定のレコードの「b」フィールドの値を変更するにはどうすればよいですか?