Spec-Zone.ru › OCaml 4.14

Модуль Множеств

module Set: sig .. end

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

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

Функтор 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

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

module type S = sig .. end

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

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

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

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

Spec-Zone.ru

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