在 OCaml 中将哈希表转换为对(键,值)列表

2024-02-13

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

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

BatList.of_enum (BatHashtbl.enum ht)

使用电池库。这会将表转换为枚举,然后将枚举转换为列表。但我正在寻找一种不使用电池库的解决方案。在里面标准 OCaml Hashtbl 模块 http://caml.inria.fr/pub/docs/manual-ocaml/libref/Hashtbl.html似乎没有一种方法可以将这些对提取为列表,也没有一种方法可以组合其功能来实现此目的。有什么建议么?


在标准 OCaml Hashtbl 模块中似乎没有......

当然有!

val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c

So, use:

fun h -> Hashtbl.fold (fun k v acc -> (k, v) :: acc) h []
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OCaml 中将哈希表转换为对(键,值)列表 的相关文章

  • 如何将嵌套列表切片两次?

    使用嵌套列表 例如 ex list 1 2 3 4 5 6 7 8 9 我需要能够将此列表分割为 1 2 4 5 我一直在尝试 list ex list 2 2 但这不起作用 我显然做了一些非常错误的事情 但一直无法找到解决方案 因为由于某
  • 类型错误:“float”对象不可下标

    PizzaChange float input What would you like the new price for all standard pizzas to be PriceList 0 1 2 3 4 5 6 PizzaCha
  • 如何设置行高 Sencha Touch List

    如何设置 Sencha Touch List 对象中的行高 我使用 HTML 来格式化行 多行行会变得更高 但如何设置行高 谢谢 格里 要编辑列表元素的默认高度 有两种方法 使用 SASS 创建您自己的 Sencha 主题 官方 Sench
  • 如何强制 OCaml 推断出更通用的类型?

    我想定义一个接受可选参数的函数 该参数是一个函数 a gt b 默认值应该是identity 实际上就是 a gt a 但我认为没有理由它不应该与更通用的兼容 a gt b 当我尝试时 let optional apply f i matc
  • 对 numpy 数组中存在的元组中的列进行切片

    我已将一个文本文件导入到 numpy 数组中 如下所示 data np genfromtxt f dtype None delimiter names None 其中 f 包含我的 csv 文件的路径 现在数据包含以下内容 array 53
  • 如何在 Python 中创建多个(但单独的)空列表?

    我编写了一个脚本 该脚本有时会生成一堆空列表 应用具有以下结构的代码 A B C D 产生输出 A B C D 现在的情况是 每次使用不同的数据集作为输入时 我都必须手动修改字母 我希望能够实现自动化 我想过这样做 FieldList A
  • 如何从链表中删除节点?

    将整数添加到列表中工作正常 但删除和打印时出现问题 我对调试器还不友好 但我发现节点指针 first 有错误 它的值为 17891602 我不知道发生了什么事 include
  • Python 中的密码子生成

    我有这段代码 用于将 DNA 字符串转换为密码子列表 然后将此列表转换为具有各自氨基酸的字符串 然而 当我运行代码并且 DNA 字符串以一对核苷酸 例如 CT 而不是三联体结尾时 代码不会生成氨基酸序列 正如您在输出中看到的 from co
  • 根据另一个列表的顺序对列表进行排序[重复]

    这个问题在这里已经有答案了 我需要对列表进行排序Person对象 List
  • 如何使用foldr为列表创建显示实例?

    我想为我的数据类型 我的列表 编写自己的显示实例 到目前为止 我的方法是有效的 但我总是在末尾有一个逗号 我已经尝试用最后一个元素启动折叠并将其从列表中删除 但它很麻烦而且不起作用 有没有更简单的方法来获得正确的解决方案 实际 1 2 3
  • 以概率从列表中选择随机元素

    我有一个包含四个项目 A B C D 的列表 每个项目都有被选择的概率 例如 A 有 74 的机会被选中 B 15 C 7 D 4 我想创建一个函数 根据其概率随机选择一个项目 有什么帮助吗 为您的项目定义一个类 如下所示 class It
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • 在 python 上获取大目录文件列表的最佳方法?

    我有一个疯狂的大目录 我需要通过 python 获取文件列表 在代码中我需要获取迭代器 而不是列表 所以这不起作用 os listdir glob glob uses listdir os walk 我找不到任何好的库 帮助 也许是c li
  • 发布到列表 MVC3

    我试图让我的视图将列表发布回操作 但它始终为空 所以我的模型有一个 WeightEntry 对象列表 运动模型 public class Exercise public List
  • 嵌套 NumPy 数组并使用拆分等方法

    我是 NumPy 的新手 正在尝试在我的代码中使用它来处理某些表 我有一个如下所示的坐标列表 coordinates 2 0 0 1 3 4 并想这样写 coordinatesNumpy np array 2 0 0 1 3 4 在常规 P
  • 打乱列表并返回副本

    我想对数组进行洗牌 但我找到的只是类似的方法random shuffle x from 在 Python 中随机化字符串列表的最佳方法 https stackoverflow com questions 1022141 best way t
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 按升序对数字字符串列表进行排序

    我创建了一个SQLite https en wikipedia org wiki SQLite数据库有一个存储温度值的表 第一次将温度值按升序写入数据库 然后 我将数据库中的温度值读入列表中 然后将该列表添加到组合框中以选择温度 效果很好
  • OCaml - 什么数据类型是 some 和 none?

    如果我正在使用Some and None列表中的组合 列表的数据类型是什么 是不是总是 a 或者有某种类型Some None let listVar type here list Some 4 Some 3 None Some 2 如果我把

随机推荐

  • 无法使用连接编译 C# linq 查询

    下面是一些我在执行一些 linq 连接时无法编译的 C 代码的简化示例 有谁知道为什么这不能编译 错误是 无法从查询中推断出类型参数 在我的真实代码中Fetch 返回一个IQueryable
  • CSS Border 在一行中声明 4 个边、颜色、宽度

    我这里有这样的规则 border 3px 0 0 0 solid ccc 然而 边界的 4 条边似乎没有注册 border 3px solid ccc 不过似乎工作正常 有没有一种方法可以制作一个分配了 4 个边宽的单行线 虽然边框没有确切
  • 使用 pandas.to_datetime 时仅保留日期部分

    I use pandas to datetime解析我的数据中的日期 Pandas 默认表示日期datetime64 ns 即使日期都是每天的 我想知道是否有一种优雅 聪明的方法将日期转换为datetime date or datetime
  • 使用 JDBC 将 CSV 复制到具有自定义类型数组的 Postgres

    我在数据库中定义了一个自定义类型 CREATE TYPE address AS ip inet port int 以及在数组中使用此类型的表 CREATE TABLE my table addresses address NULL 我有一个
  • Android DownloadManager 类:getUriForDownloadedFile 返回错误路径

    我使用 DownloadManager 库下载 apk 文件 并且我有一个用于下载服务的 BroadcastReceiver 这是我在 onRecieve 中的代码 long id intent getExtras getLong Down
  • 我们应该为 adam 优化器做学习率衰减吗

    我正在使用 Adam 优化器训练图像定位网络 有人建议我使用指数衰减 我不想尝试这个 因为 Adam 优化器本身会降低学习率 但那家伙坚持说他以前就这么做过 那么我应该这样做吗 你的建议背后有什么理论依据吗 这取决于 ADAM 使用单独的学
  • MSSQL 错误“底层提供程序打开失败”

    我当时用的是 mdf用于连接到database and entityClient 现在我想更改连接字符串 这样就不会出现 mdf file 是下面的connectionString正确的
  • html 中输入的 maxlength 属性在 HTC One M7 上不起作用

    我有一个简单的输入字段 它有一个 maxlength 2 属性 代码如下所示
  • 我想在使用 opengl 运行任何游戏时捕获屏幕 [重复]

    这个问题在这里已经有答案了 可能的重复 为什么 glReadPixels 在 iOS 6 0 中的这段代码中失败 https stackoverflow com questions 12528365 why is glreadpixels
  • 如何使 UITableViewCell 附件公开指示器在黑色背景中可见?

    cell accessoryType UITableViewCellAccessoryDisclosureIndicator 在这个方法中 UITableViewCell tableView UITableView tableView ce
  • Behat Mink Webdriver 会话在套件中的每个功能之后都会被销毁

    我正在尝试使用 behat BDD 和 Mink 以及 selenium webdriver for php 来自动化 Sugarcrm 功能 我已经正确安装了它们 并且能够一起运行 behat 和 mink 例如 将 SugarCRM 上
  • vim 正则表达式仅用一个空格替换多个连续空格

    我经常使用具有可变数量的空格作为单词分隔符的文本文件 像Word这样的文本处理器会这样做 因为某些字体中的字母大小不同 所以公平地分配空白量 并且即使在另存为纯文本 我想自动化将这些具有可变长度的空格序列替换为单个空格的过程 我怀疑正则表达
  • C# webbrowser 控件无法导航到另一个页面

    我有一个控制台应用程序 并且在其中定义了一个网络浏览器 首先 我导航到一个页面并填写登录表单并调用提交按钮进行登录 之后 我想使用相同的网络浏览器转到同一站点中的另一个页面 但它不会导航到该页面 相反 它会导航到登录后重定向的页面 这是我的
  • 最新的处理器不支持 SSSE3 指令? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何不支持 SSSE3 指令的仍然相关的 CPU Intel AMD Atom 没有 SSSE3 的最新 CPU 是什么 没有 SS
  • 限制 Rails 中的“每个”列表

    我们有这个 li li 该代码将产生 50 个条目的总结果 在我的例子中 我如何才能将此视图限制为 20 是的 只是限制它 我不需要任何分页之类的 Thanks 更改控制器中的代码 shops正在设置 或者将上面的代码改为 shops ta
  • 使用 golang 解析损坏的 HTML

    我需要在 HTML 字符串中查找元素 不幸的是 HTML 几乎被破坏了 例如 没有打开对的关闭标签 我尝试使用 XPathlaunchpad net xmlpath但它无法解析 HTML 文件 真是太糟糕了 如何使用 golang 找到损坏
  • 模块导入自身

    我正在尝试从特定于应用程序的终端 在本例中为 Maya 但最终是其他终端 导入模块 我已经从 git 下载了一个项目 我的结构如下 modulename submodule init py subsubmodule submodule in
  • 如何获取 iPhone 应用程序的用户反馈? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一些服务 可以促使用户尝试我的 iPhone 应用程序并提供反馈或评论 我也愿意付钱 您知道
  • 从多个谷歌电子表格导入范围

    我知道如何将数据从一个电子表格导入到另一个电子表格 IMPORTRANGE spreadsheet key range string Source 但是如何将多个电子表格导入到一个 主电子表格 中 像这样的事情 IMPORTRANGE sp
  • 在 OCaml 中将哈希表转换为对(键,值)列表

    OCaml 中有没有办法将哈希表转换为 键 对 值列表 我知道 给定一个哈希表ht我们可以做的 BatList of enum BatHashtbl enum ht 使用电池库 这会将表转换为枚举 然后将枚举转换为列表 但我正在寻找一种不使