2008-01-28から1日間の記事一覧

書き換え可能なデータ構造:文字列

実は,文字列は書き換えが可能。たとえば次のような文字列があったとして: # let s = "life";; val s : string = "life" # s;; - : string = "life"次のように書き換えができる。 # s.[2] <- 'k';; - : unit = () # s;; - : string = "like"新しい値ができる…

構造的等価性と物理的等価性

2つのデータを比べたとき,「値として等しいこと」を構造的等価性(structural equality)という。「値として」だけでなく,メモリ上の同じ位置を占めていることを物理的等価性(physical equality)という。 OCaml には構造的等価性を調べる演算子 = と物…

書き換え可能なレコード

レコードを宣言するときにフィールド名の前に mutable キーワードをつけることで,書き換え可能にすることができる。 # type teacher = {name : string; mutable office : string};; type teacher = { name : string; mutable office : string; }これで offi…

参照

書き換え可能なレコードの特殊な場合で,フィールド1つだけを持つ場合を伝統的に参照(reference)という。参照には特別な書き方がある。 まず,参照の生成には ref 関数。 # let p = ref 4;; val p : int ref = {contents = 4}ref は初期値を引数にとって…