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
函子 Map.Make
的输入签名。
module type S =sig
..end
函子 Map.Make
的输出签名。
module Make:
给定一个全序类型,构建映射结构实现的函子。