Spec-Zone.ru › OCaml 5.0

Модуль MoreLabels.Set

module Set: sig .. end

Множества над упорядоченными типами.

Этот модуль реализует структуру данных множество, учитывая функцию полного упорядочения над элементами множества. Все операции над множествами являются чисто прикладными (без побочных эффектов). Реализация использует сбалансированные двоичные деревья, поэтому она достаточно эффективна: вставка и проверка на принадлежность занимают время, логарифмически зависящее от размера множества, например.

Функтор MoreLabels.Set.Make создаёт реализации для любого типа, заданного функцией compare. Например:

       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 PairsSet = Set.Make(IntPairs)

       let m = PairsSet.(empty |> add (2,3) |> add (5,7) |> add (11,13))
     

Это создаёт новый модуль PairsSet, с новым типом PairsSet.t множеств int * int.

module type OrderedType = sig .. end

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

module type S = sig .. end

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

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

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

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/MoreLabels.Set.html

Spec-Zone.ru

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