Модуль 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, с новым типом '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: functor (Ord : OrderedType) -> S
with type key = Ord.t
and type 'a t = 'a Map.Make(Ord).t
Функтор, создающий реализацию структуры отображения, заданной полностью упорядоченным типом.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/MoreLabels.Map.html