微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建一个以 Hashtbl 作为属性的个人类型

如何解决创建一个以 Hashtbl 作为属性的个人类型

我正在尝试创建这样的类型:

type variable {
  id: string;
  tipe: int
}

type dec {
   variables: variable list;
   parent: dec option
}

在我的程序执行期间,我需要有一个 dec 列表并将变量添加到运行时,但是使用该列表,我不能这样做,因为它是一个不可变的数据结构。

我正在尝试更改实现并使用哈希映射来存储变量,例如,我需要将变量存储为具有 (key: string and value: int) 的哈希表,但我不知道如何在类型声明中使用 OCaml 实现哈希映射。

解决方法

这是一种记录类型,其中该类型的每个值都包含一个哈希表。哈希表从字符串映射到整数:

type dec = {
    variables: (string,int) Hashtbl.t;
    parent: dec option;
}

还有许多其他方法可以进行设置。特别是,这使用了通用(多态)哈希表接口。如果您想对行为进行更多控制,可以使用函数式接口(它允许您指定自己的比较和散列函数)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。