模块选项的语法

Nic*_*ner 3 ocaml

我正在尝试使用可选的地图创建一个类型:

module CharMap = Map.Make(Char)
type trie = bool * CharMap.t option
Run Code Online (Sandbox Code Playgroud)

但这会导致语法错误:

Error: The type constructor CharMap.t expects 1 argument(s),
       but is here applied to 0 argument(s)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Tho*_*mas 8

CharMap.t是一个映射char'a,所以实际上它的类型是'a Charmap.t,所以你忘了指定多态参数.所以你应该写:

type 'a trie = bool * 'a CharMap.t option
Run Code Online (Sandbox Code Playgroud)

如果您希望地图是单形的(例如char -> int),您可以写:

type trie = bool * int CharMap.t option
Run Code Online (Sandbox Code Playgroud)