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
,其中包含一个新类型 'a 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:
函子,用于根据完全有序类型构建映射结构的实现。