我已经在 OCaml 中实现了集合(平衡搜索树)的表示。Make
它实际上是签名的函子
module Make :
functor (T : ORDERED_TYPE) ->
sig
type elt = T.t
type t
val empty : t
val cons : elt -> t -> t
val delete : elt -> t -> t
val mem : elt -> t -> bool
val cardinal : t -> int
end
在哪里
module type ORDERED_TYPE = sig type t val compare : t -> t -> int end
现在我想Map
在标准库中实现一个字典。它必须有一个像这样的签名
module Make: functor (T : ORDERED_TYPE) -> sig
type key = T.t
type +'a t
...
end
哪里t
是字典的类型。
再次实现平衡搜索树并不优雅,所以我想根据上面实现为仿函数的集合来定义字典。我可以这样做吗?