模块 MoreLabels.Map

module Map: sig .. end

基于有序类型的关联表。

此模块实现应用关联表,也称为有限映射或字典,前提是在键上提供一个全序函数。所有对映射的操作都是纯应用的(无副作用)。实现使用平衡二叉树,因此搜索和插入的时间复杂度为对数级,与映射的大小成正比。

例如

       module IntPairs =
         struct
           type t = int * int
           let compare (x0,y0) (x1,y1) =
             match Stdlib.compare x0 x1 with
                 0 -> Stdlib.compare y0 y1
               | c -> c
         end

       module PairsMap = Map.Make(IntPairs)

       let m = PairsMap.(empty |> add (0,1) "hello" |> add (1,0) "world")
     

这将创建一个新模块 PairsMap,其中包含一个新类型 'PairsMap.t,表示从 int * int'a 的映射。在此示例中,m 包含 string 值,因此其类型为 string PairsMap.t

module type OrderedType = sig .. end

函子 MoreLabels.Map.Make 的输入签名。

module type S = sig .. end

函子 MoreLabels.Map.Make 的输出签名。

module Make: 
functor (Ord : OrderedType-> S with type key = Ord.t and type 'a t = 'a Map.Make(Ord).t

函子,用于根据完全有序类型构建映射结构的实现。