ocaml类型构造函数参数

时间:2012-10-01 23:30:27

标签: types constructor ocaml type-constructor

我这样定义了一个AVL树,'a - > 'a - > int是比较函数

type 'a t = Empty of ('a -> 'a -> int)
  | Node of 'a * 'a t * 'a t * ('a -> 'a -> int)

我正在尝试使用此AVL模块在单独的模块中实现优先级队列。

type 'a t = Queue of (Avl.t * int)

但是当我尝试编译时,我得到了这个错误:

 Error: The type constructor Avl.t expects 1 argument(s),
   but is here applied to 0 argument(s)

它在讨论什么参数以及语法在队列类型中应该是什么?

1 个答案:

答案 0 :(得分:5)

您的AVL树由节点中的类型('a)参数化。所以你应该可以说

type 'a t = Queue of ('a Avl.t * int)