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