Ответ 1
В стандартном модуле OCaml Hashtbl, похоже, нет...
Из couse есть!
val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
Итак, используйте:
fun h -> Hashtbl.fold (fun k v acc -> (k, v) :: acc) h []
Есть ли способ преобразования хэш-таблицы в список значений (ключ, пара) в OCaml?
Я знаю, что, учитывая хеш-таблицу ht
, мы можем сделать
BatList.of_enum (BatHashtbl.enum ht)
с использованием библиотеки батарей. Это преобразует таблицу в перечисление, а затем преобразует перечисление в список. Но я ищу решение, которое не использует библиотеку батарей. В стандартном OCaml Hashtbl Module, похоже, нет способа извлечь пары в виде списка или способ комбинирования его функций для достижения этой цели. Любые предложения?
В стандартном модуле OCaml Hashtbl, похоже, нет...
Из couse есть!
val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
Итак, используйте:
fun h -> Hashtbl.fold (fun k v acc -> (k, v) :: acc) h []