我正在尝试使用可选 map 制作类型:

module CharMap = Map.Make(Char)
type trie = bool * CharMap.t option

但这会导致语法错误:
Error: The type constructor CharMap.t expects 1 argument(s),
       but is here applied to 0 argument(s)

我究竟做错了什么?

最佳答案

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

type 'a trie = bool * 'a CharMap.t option

如果您希望您的 map 是单态的(例如 char -> int ),您可以只写:
type trie = bool * int CharMap.t option

关于ocaml - 模块选项的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9773396/

10-10 07:57