OCamlで連想配列を使いたい
OCamlでハッシュテーブルのようなデータ構造を扱いたい場合、Listモジュールの連想配列機能(アソシエーションリスト)を使うのが手軽そう。
Listモジュール
code:ocaml
(* 要素の走査 *)
let _ = List.iter (fun (k, v) -> print_string (k ^ ": " ^ string_of_int v ^ "\n")) env
(* 要素数の取得 *)
let _ = List.length env
(* 要素の有無 *)
let _ = List.mem_assoc "a" env (* true *)
(* 要素の取得 *)
let _ =
if List.mem_assoc "a" env then
List.assoc "a" env
else
-1
(* オプショナルな要素の取得 *)
let _ =
match List.assoc_opt "b" env with
| Some v -> string_of_int v
| None -> "Not found"
(* 要素の追加 *)
let new_env = ("c", 9981) :: env;;
(* 要素の更新 *)
let new_env =
let filtered = List.remove_assoc "c" new_env in
("c", 5525) :: filtered
;;
(* 要素の削除 *)
let new_env = List.remove_assoc "a" new_env