(** Input signature of the functor [Make]. *)
module type OrderedType = sig type t (** The type of the elements in the set.
The chosen [t] {b must be infinite}. *)
val compare : t -> t -> int (** A total ordering function over the set elements. Thisisatwo-argumentfunction[f]suchthat: -[fe1e2]iszeroiftheelements[e1]and[e2]areequal, -[fe1e2]isstrictlynegativeif[e1]issmallerthan[e2], -and[fe1e2]isstrictlypositiveif[e1]isgreaterthan[e2].
*) end
module type S = sig type elt (** The type of the elements in the set. *)
type t (** The type of sets. *)
val empty: t (** The empty set. *)
val full: t (** The set of all elements (of type [elm]). *)
val is_empty: t -> bool (** Test whether a set is empty or not. *)
val is_full: t -> bool (** Test whether a set contains the whole type or not. *)
val mem: elt -> t -> bool (** [mem x s] tests whether [x] belongs to the set [s]. *)
val singleton: elt -> t (** [singleton x] returns the one-element set containing only [x]. *)
val add: elt -> t -> t (** [add x s] returns a set containing all elements of [s],
plus [x]. If [x] was already in [s], then [s] is returned unchanged. *)
val remove: elt -> t -> t (** [remove x s] returns a set containing all elements of [s],
except [x]. If [x] was not in [s], then [s] is returned unchanged. *)
val union: t -> t -> t (** Set union. *)
val inter: t -> t -> t (** Set intersection. *)
val diff: t -> t -> t (** Set difference. *)
val complement: t -> t (** Set complement. *)
val equal: t -> t -> bool (** [equal s1 s2] tests whether the sets [s1] and [s2] are
equal, that is, contain equal elements. *)
val subset: t -> t -> bool (** [subset s1 s2] tests whether the set [s1] is a subset of
the set [s2]. *)
val elements: t -> bool * elt list (** Gives a finite representation of the predicate: if the booleanisfalse,thenthepredicateisgiveninextension.
if it is true, then the complement is given *)
val is_finite : t -> bool (** [true] if the predicate can be given as a finite set (if [elt] isafinitetype,wecanhave[is_finitex=false]yet[x]is
finite, but we don't know how to list its elements) *) end
(** The [Make] functor constructs an implementation for any [OrderedType]. *)
module Make (Ord : OrderedType) : (S withtype elt = Ord.t)
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.