有没有办法将哈希表转换为OCaml中的(键,对)值列表?
我知道,给定哈希表ht
我们可以做
BatList.of_enum (BatHashtbl.enum ht)
使用电池库。这会将表转换为枚举,然后将枚举转换为列表。但我正在寻找一种不使用电池库的解决方案。在standard OCaml Hashtbl Module中,似乎没有办法将对提取为列表或将其功能组合以实现此目的的方式。有什么建议吗?
答案 0 :(得分:30)
在标准的OCaml Hashtbl模块中似乎没有......
有没有!
val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
所以,请使用:
fun h -> Hashtbl.fold (fun k v acc -> (k, v) :: acc) h []