ORD_SET
signature
signature ORD_SET
structure IntBinarySet
:> ORD_SET
structure IntListSet
:> ORD_SET
The ORD_SET signature provides an abstract description of applicative-style sets on a linearly ordered type.
structure Key : ORD_KEY
type item = Key.ord_key
type set
val empty : set
val singleton : item -> set
val add : (set * item) -> set
val add' : (item * set) -> set
val addList : (set * item list) -> set
val delete : (set * item) -> set
val member : (set * item) -> bool
val isEmpty : set -> bool
val equal : (set * set) -> bool
val compare : (set * set) -> order
val isSubset : (set * set) -> bool
val numItems : set -> int
val listItems : set -> item list
val union : (set * set) -> set
val intersection : (set * set) -> set
val difference : (set * set) -> set
val map : (item -> item) -> set -> set
val app : (item -> unit) -> set -> unit
val foldl : ((item * 'b) -> 'b) -> 'b -> set -> 'b
val foldr : ((item * 'b) -> 'b) -> 'b -> set -> 'b
val filter : (item -> bool) -> set -> set
val exists : (item -> bool) -> set -> bool
val find : (item -> bool) -> set -> item option
type item
type set
val empty
singleton v
add (se, v)
add' (v, se)
add
only in the order of its arguments, for use with fold functions.
addList (se, l)
List.foldl add' se l
delete (se, v)
member (se, v)
isEmpty se
equal (se, se2)
compare (se, se2)
isSubset (se, se2)
numItems se
listItems se
union (se, se2)
intersection (se, se2)
difference (se, se2)
map f se
List.foldl add' empty (List.map f (listItems se))
app f se
List.app f (listItems se)
foldl f a se
List.foldl f a (listItems se)
foldr f a se
List.foldr f a (listItems se)
filter f se
List.foldl add' empty (List.filter f (listItems se))
exists f se
find f se
ORD_MAP, ORD_KEY, BinarySetFn, SplaySetFn, ListSetFn
Last Modified June 9, 1998
Comments to John Reppy
Copyright © 1998 Bell Labs, Lucent Technologies