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 /sml/trunk/src/smlnj-lib/Doc/mldoc/queue.mldoc
ViewVC logotype

Annotation of /sml/trunk/src/smlnj-lib/Doc/mldoc/queue.mldoc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 167 - (view) (download)
Original Path: sml/branches/SMLNJ/src/smlnj-lib/Doc/mldoc/queue.mldoc

1 : monnier 167 <!-- queue.mldoc -->
2 :    
3 :     <!DOCTYPE ML-DOC SYSTEM>
4 :    
5 :     <COPYRIGHT OWNER="AT&AMP;T Bell Laboratories" YEAR=1996>
6 :     <VERSION VERID="1.0" YEAR=1996 MONTH=5 DAY=29>
7 :     <TITLE>The QUEUE signature</TITLE>
8 :    
9 :     <SECT>
10 :     <HEAD>The <CD/QUEUE/ signature</HEAD>
11 :    
12 :     <PP>
13 :     The <STRREF TOPID NOLINK/Queue/ structure provides imperative first-in/first-out
14 :     queues.
15 :     <STRUCTURE STRID="Queue">
16 :     <SIGBODY SIGID="QUEUE" FILE=QUEUE-SIG>
17 :     <SPEC>
18 :     <TYPE><TYPARAM>'a<ID>queue
19 :     <COMMENT>
20 :     Imperative first-in/first-out queues.
21 :     <SPEC>
22 :     <EXN>Dequeue
23 :     <COMMENT>
24 :     This exception is raised when attempting to remove an element from
25 :     and empty queue.
26 :     It is the same exception as <EXNREF STRID="Fifo"/Dequeue/.
27 :     <SPEC>
28 :     <VAL>mkQueue<TY>unit -> 'a queue
29 :     <COMMENT>
30 :     <PROTOTY>
31 :     mkQueue ()
32 :     </PROTOTY>
33 :     creates a new, empty, queue.
34 :     <SPEC>
35 :     <VAL>isEmpty<TY>'a queue -> bool
36 :     <COMMENT>
37 :     <PROTOTY>
38 :     isEmpty <ARG/q/
39 :     </PROTOTY>
40 :     returns <CD/true/, if the queue <ARG/q/ is empty.
41 :     <SPEC>
42 :     <VAL>enqueue<TY>('a queue * 'a) -> unit
43 :     <COMMENT>
44 :     <PROTOTY>
45 :     enqueue (<ARG/q/, <ARG/a/)
46 :     </PROTOTY>
47 :     adds the element <ARG/a/ to the end of the queue.
48 :     <SPEC>
49 :     <VAL>dequeue<TY>'a queue -> 'a
50 :     <RAISES><EXNREF/Dequeue/
51 :     <COMMENT>
52 :     <PROTOTY>
53 :     dequeue <ARG/q/
54 :     </PROTOTY>
55 :     removes and returns the first element of the queue <ARG/q/.
56 :     If <ARG/q/ is empty, then the exception <EXNREF/Dequeue/ is
57 :     raised.
58 :     <SPEC>
59 :     <VAL>delete<TY>('a queue * ('a -> bool)) -> unit
60 :     <COMMENT>
61 :     <PROTOTY>
62 :     delete (<ARG/q/, <ARG/pred/)
63 :     </PROTOTY>
64 :     deletes the first element in <ARG/q/ that satisfies the predicate
65 :     <ARG/pred/.
66 :     <SPEC>
67 :     <VAL>head<TY>'a queue -> 'a
68 :     <RAISES><EXNREF/Dequeue/
69 :     <COMMENT>
70 :     <PROTOTY>
71 :     head <ARG/q/
72 :     </PROTOTY>
73 :     returns the first element of the queue <ARG/q/ (without removing it).
74 :     If <ARG/q/ is empty, then the exception <EXNREF/Dequeue/ is
75 :     raised.
76 :     <SPEC>
77 :     <VAL>peek<TY>'a queue -> 'a option
78 :     <COMMENT>
79 :     <PROTOTY>
80 :     peek <ARG/q/
81 :     </PROTOTY>
82 :     returns the first element of the queue <ARG/q/, or
83 :     <CONREF STRID="General" DOCUMENT=SML-BASIS-DOC/NONE/ if
84 :     <ARG/q/ is empty.
85 :     <SPEC>
86 :     <VAL>length<TY>'a queue -> int
87 :     <COMMENT>
88 :     <PROTOTY>
89 :     length <ARG/q/
90 :     </PROTOTY>
91 :     returns the number of elements in the queue <ARG/q/.
92 :     <SPEC>
93 :     <VAL>contents<TY>'a queue -> 'a list
94 :     <COMMENT>
95 :     <PROTOTY>
96 :     contents <ARG/q/
97 :     </PROTOTY>
98 :     returns the list of elements in the queue <ARG/q/ in the order
99 :     that they were inserted.
100 :     <SPEC>
101 :     <VAL>app<TY>('a -> unit) -> 'a queue -> unit
102 :     <COMMENT>
103 :     <PROTOTY>
104 :     app <ARG/f/ <ARG/q/
105 :     </PROTOTY>
106 :     explain the use and semantics of app HERE.
107 :     This is equivalent to the expression:
108 :     <CODE>
109 :     <VALREF STRID="List" DOCUMENT=SML-BASIS-DOC/List.app/ <ARG/f/ (<VALREF/contents/ <ARG/q/)
110 :     </CODE>
111 :     <SPEC>
112 :     <VAL>map<TY>('a -> 'b) -> 'a queue -> 'b queue
113 :     <COMMENT>
114 :     <PROTOTY>
115 :     map <ARG/f/ <ARG/q/
116 :     </PROTOTY>
117 :     explain the use and semantics of map HERE.
118 :     This is equivalent to the expression:
119 :     <CODE>
120 :     <VALREF STRID="List" DOCUMENT=SML-BASIS-DOC/List.map/ <ARG/f/ (<VALREF/contents/ <ARG/q/)
121 :     </CODE>
122 :     <SPEC>
123 :     <VAL>foldl<TY>(('a * 'b) -> 'b) -> 'b -> 'a queue -> 'b
124 :     <COMMENT>
125 :     <PROTOTY>
126 :     foldl <ARG/f/ <ARG/init/ <ARG/q/
127 :     </PROTOTY>
128 :     explain the use and semantics of foldl HERE.
129 :     This is equivalent to the expression:
130 :     <CODE>
131 :     <VALREF STRID="List" DOCUMENT=SML-BASIS-DOC/List.foldl/ <ARG/f/ <ARG/init/ (<VALREF/contents/ <ARG/q/)
132 :     </CODE>
133 :     <SPEC>
134 :     <VAL>foldr<TY>(('a * 'b) -> 'b) -> 'b -> 'a queue -> 'b
135 :     <COMMENT>
136 :     <PROTOTY>
137 :     foldr <ARG/f/ <ARG/init/ <ARG/q/
138 :     </PROTOTY>
139 :     explain the use and semantics of foldr HERE.
140 :     This is equivalent to the expression:
141 :     <CODE>
142 :     <VALREF STRID="List" DOCUMENT=SML-BASIS-DOC/List.foldr/ <ARG/f/ <ARG/init/ (<VALREF/contents/ <ARG/q/)
143 :     </CODE>
144 :     </SIGBODY>
145 :     <SEEALSO>
146 :     <STRREF TOPID/Fifo/
147 :     </SEEALSO>
148 :     </STRUCTURE>

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