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-2024 INRIA.
https://ocaml.org/manual/5.2/api/Map.html

Spec-Zone.ru

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