ocaml - 创建一个以 Hashtbl 作为属性的个人类型
问题描述
我正在尝试创建这样的类型:
type variable {
id: string;
tipe: int
}
type dec {
variables: variable list;
parent: dec option
}
在我的程序执行期间,我需要一个 dec 列表并将变量添加到运行时,但是对于该列表,我不能这样做,因为它是一个不可变的数据结构。
我正在尝试更改实现并使用哈希映射来存储变量,例如,我需要将变量存储为带有(键:字符串和值:int)的哈希表,但我不知道如何实现哈希在类型声明中使用 OCaml 映射。
解决方案
这是一种记录类型,其中类型的每个值都包含一个哈希表。哈希表从字符串映射到整数:
type dec = {
variables: (string, int) Hashtbl.t;
parent: dec option;
}
还有许多其他方法可以设置它。特别是,这使用了通用(多态)哈希表接口。如果您想更好地控制行为,您可以使用函数接口(它允许您指定自己的比较和散列函数)。
推荐阅读
- ruby - 仅当我的 jar 文件在厨师中更新时如何解压文件?
- python - 将值列表转换为数据框时结果不正确
- javascript - 父窗口未从 Microsoft Edge 中的子窗口更新
- c - 插入节点时返回 void 与返回链表有什么区别或权衡?
- c# - 使用 asmx 的简单 helloworld WebService 在 Windows 2008 R2 IIS 7.5 上发布时不起作用
- testing - JMeter - 测试从 CSV 文件中获取的唯一链接
- arrays - 按多个属性对包含字符串和整数的数组进行排序
- angular - 测试角拦截器(加载微调器)
- python - 运行后的问题:heroku run python manage.py migrate
- vmware - 如何签署 ova 文件?