Ocaml 创建一个具有Hashtbl属性的个人类型

Ocaml 创建一个具有Hashtbl属性的个人类型,ocaml,Ocaml,我正在尝试创建这样一种类型: type variable { id: string; tipe: int } type dec { variables: variable list; parent: dec option } 在我的程序执行期间,我需要一个dec列表,并将变量添加到运行时,但是使用该列表,我无法做到这一点,因为它是一个不可变的数据结构 我正在尝试更改实现并使用哈希映射来存储变量,例如,我需要将变量存储为具有key:string和value:int的哈希表,

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

type variable {
  id: string;
  tipe: int
}

type dec {
   variables: variable list;
   parent: dec option
}
在我的程序执行期间,我需要一个dec列表,并将变量添加到运行时,但是使用该列表,我无法做到这一点,因为它是一个不可变的数据结构


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

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

type dec = {
    variables: (string, int) Hashtbl.t;
    parent: dec option;
}
有很多其他的方法来设置这个。特别是,它使用通用多态哈希表接口。如果希望对行为进行更多控制,可以使用functorial接口,该接口允许您指定自己的比较和散列函数