Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /smlnj-lib/trunk/HashCons/hash-cons-set-sig.sml
ViewVC logotype

Annotation of /smlnj-lib/trunk/HashCons/hash-cons-set-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2144 - (view) (download)

1 : jhr 967 (* hash-cons-set-sig.sml
2 :     *
3 :     * COPYRIGHT (c) 2001 Bell Labs, Lucent Technologies
4 :     *
5 :     * Finnite sets of hash-consed objects.
6 :     *)
7 :    
8 :    
9 :     signature HASH_CONS_SET =
10 :     sig
11 :    
12 :     type 'a obj = 'a HashCons.obj
13 :    
14 :     type 'a set
15 :    
16 :     val empty : 'a set
17 :     (* The empty set *)
18 :    
19 :     val singleton : 'a obj -> 'a set
20 :     (* Create a singleton set *)
21 :    
22 :     val add : 'a set * 'a obj -> 'a set
23 :     val add' : ('a obj * 'a set) -> 'a set
24 :     (* Insert an item. *)
25 :    
26 :     val addList : 'a set * 'a obj list -> 'a set
27 :     (* Insert items from list. *)
28 :    
29 :     val delete : 'a set * 'a obj -> 'a set
30 :     (* Remove an item. Raise NotFound if not found. *)
31 :    
32 :     val member : 'a set * 'a obj -> bool
33 :     (* Return true if and only if item is an element in the set *)
34 :    
35 :     val isEmpty : 'a set -> bool
36 :     (* Return true if and only if the set is empty *)
37 :    
38 :     val equal : ('a set * 'a set) -> bool
39 :     (* Return true if and only if the two sets are equal *)
40 :    
41 :     val compare : ('a set * 'a set) -> order
42 :     (* does a lexical comparison of two sets *)
43 :    
44 :     val isSubset : ('a set * 'a set) -> bool
45 :     (* Return true if and only if the first set is a subset of the second *)
46 :    
47 :     val numItems : 'a set -> int
48 :     (* Return the number of items in the table *)
49 :    
50 :     val listItems : 'a set -> 'a obj list
51 :     (* Return an ordered list of the items in the set *)
52 :    
53 :     val union : 'a set * 'a set -> 'a set
54 :     (* Union *)
55 :    
56 :     val intersection : 'a set * 'a set -> 'a set
57 :     (* Intersection *)
58 :    
59 :     val difference : 'a set * 'a set -> 'a set
60 :     (* Difference *)
61 :    
62 :     val map : ('a obj -> 'b obj) -> 'a set -> 'b set
63 :     (* Create a new set by applying a function to the elements
64 :     * of the set.
65 :     *)
66 :    
67 :     val mapPartial : ('a obj -> 'b obj option) -> 'a set -> 'b set
68 :     (* Create a new set by applying a partial function to the elements
69 :     * of the set.
70 :     *)
71 :    
72 :     val app : ('a obj -> unit) -> 'a set -> unit
73 :     (* Apply a function to the entries of the set
74 :     * in decreasing order
75 :     *)
76 :    
77 :     val foldl : ('a obj * 'b -> 'b) -> 'b -> 'a set -> 'b
78 :     (* Apply a folding function to the entries of the set
79 :     * in increasing order
80 :     *)
81 :    
82 :     val foldr : ('a obj * 'b -> 'b) -> 'b -> 'a set -> 'b
83 :     (* Apply a folding function to the entries of the set
84 :     * in decreasing order
85 :     *)
86 :    
87 :     val partition : ('a obj -> bool) -> 'a set -> ('a set * 'a set)
88 :    
89 :     val filter : ('a obj -> bool) -> 'a set -> 'a set
90 :    
91 :     val exists : ('a obj -> bool) -> 'a set -> bool
92 :    
93 :     val find : ('a obj -> bool) -> 'a set -> 'a obj option
94 :    
95 :     end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0