使用 Hashtbl 作为属性创建个人类型
Create a personal type with an Hashtbl as attribute
我正在尝试创建这样的类型:
type variable {
id: string;
tipe: int
}
type dec {
variables: variable list;
parent: dec option
}
在我的程序执行期间,我需要一个 dec 列表并将变量添加到运行时,但是有了这个列表,我不能这样做,因为它是一个不可变的数据结构。
我正在尝试更改实现并使用哈希映射来存储变量,例如,我需要将变量存储为具有(键:字符串和值:整数)的哈希表,但我不知道如何在类型声明中使用 OCaml 实现哈希映射。
这是一种记录类型,其中该类型的每个值都包含一个散列 table。散列 table 从字符串映射到整数:
type dec = {
variables: (string, int) Hashtbl.t;
parent: dec option;
}
还有很多其他方法可以进行设置。特别是,这使用了通用(多态)散列 table 接口。如果你想更好地控制行为,你可以使用函数接口(它允许你指定你自己的比较和散列函数)。
我正在尝试创建这样的类型:
type variable {
id: string;
tipe: int
}
type dec {
variables: variable list;
parent: dec option
}
在我的程序执行期间,我需要一个 dec 列表并将变量添加到运行时,但是有了这个列表,我不能这样做,因为它是一个不可变的数据结构。
我正在尝试更改实现并使用哈希映射来存储变量,例如,我需要将变量存储为具有(键:字符串和值:整数)的哈希表,但我不知道如何在类型声明中使用 OCaml 实现哈希映射。
这是一种记录类型,其中该类型的每个值都包含一个散列 table。散列 table 从字符串映射到整数:
type dec = {
variables: (string, int) Hashtbl.t;
parent: dec option;
}
还有很多其他方法可以进行设置。特别是,这使用了通用(多态)散列 table 接口。如果你想更好地控制行为,你可以使用函数接口(它允许你指定你自己的比较和散列函数)。