我已经在OCaml中实现了集合(平衡搜索树)的表示。它实际上是签名在OCaml中,是否可以根据Set定义Map?
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
字典的函子Make
。它必须有一个像
module Make: functor (T : ORDERED_TYPE) -> sig
type key = T.t
type +'a t
...
end
其中t
是字典的类型。
再次实现平衡搜索树并不优雅,所以我想根据上面的函数集来定义词典。我可以这样做吗?
问题是作业的陈述似乎要求我用Set来定义Map非常模糊的单词。顺便说一句,如果我尝试将结构传递给Set,那么我必须定义类型t,但我该怎么做呢?我想吨是多态的类型。 – Pteromys 2012-04-29 08:02:44