Подтвердить что ты не робот

Преобразование хеш-таблицы в список пар (ключ, значение) в OCaml

Есть ли способ преобразования хэш-таблицы в список значений (ключ, пара) в OCaml?

Я знаю, что, учитывая хеш-таблицу ht, мы можем сделать

BatList.of_enum (BatHashtbl.enum ht)

с использованием библиотеки батарей. Это преобразует таблицу в перечисление, а затем преобразует перечисление в список. Но я ищу решение, которое не использует библиотеку батарей. В стандартном OCaml Hashtbl Module, похоже, нет способа извлечь пары в виде списка или способ комбинирования его функций для достижения этой цели. Любые предложения?

4b9b3361

Ответ 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 []