【问题标题】:Converting hash table to list of pairs (key,value) in OCaml将哈希表转换为 OCaml 中的对列表(键、值)
【发布时间】:2011-05-02 21:04:56
【问题描述】:

有没有办法将哈希表转换为 OCaml 中的(键、对)值列表?

我知道,给定一个哈希表 ht 我们可以做到

BatList.of_enum (BatHashtbl.enum ht)

使用电池库。这会将表转换为枚举,然后将枚举转换为列表。但我正在寻找不使用电池库的解决方案。在standard OCaml Hashtbl Module 中似乎没有一种方法可以将这些对提取为列表,也没有一种方法可以组合其功能来实现此目的。有什么建议吗?

【问题讨论】:

  • 顺便说一句,我认为在你看过的问题中说(就像你在这里所做的那样)是非常好的做法:它有助于在正确的水平上提供答案,表明你已经尝试过,并且节省了我查找 Hashtbl.fold 类型的时间 :) (我不知道,但根据经验,当它被称为 fold 时,类型是 fold_right 的类型)

标签: list hashtable ocaml


【解决方案1】:

在标准的 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 []

【讨论】:

    猜你喜欢
    • 2012-12-12
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多