Spec-Zone.ru › OCaml

Модуль 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

Входная сигнатура функтора Map.Make.

module type S = sig .. end

Выходная сигнатура функтора Map.Make.

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

Функтор, создающий реализацию структуры отображения для заданного типа с полным порядком.

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/Map.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API