summaryrefslogtreecommitdiffstats
path: root/queue.txi
diff options
context:
space:
mode:
Diffstat (limited to 'queue.txi')
-rw-r--r--queue.txi60
1 files changed, 60 insertions, 0 deletions
diff --git a/queue.txi b/queue.txi
new file mode 100644
index 0000000..4590f34
--- /dev/null
+++ b/queue.txi
@@ -0,0 +1,60 @@
+@code{(require 'queue)}
+@ftindex queue
+
+A @dfn{queue} is a list where elements can be added to both the front
+@cindex queue
+and rear, and removed from the front (i.e., they are what are often
+called @dfn{dequeues}). A queue may also be used like a stack.
+@cindex dequeues
+
+
+@defun make-queue
+
+Returns a new, empty queue.
+@end defun
+
+@defun queue? obj
+
+Returns @code{#t} if @var{obj} is a queue.
+@end defun
+
+@defun queue-empty? q
+
+Returns @code{#t} if the queue @var{q} is empty.
+@end defun
+
+@deffn {Procedure} queue-push! q datum
+
+Adds @var{datum} to the front of queue @var{q}.
+@end deffn
+
+@deffn {Procedure} enqueue! q datum
+
+Adds @var{datum} to the rear of queue @var{q}.
+@end deffn
+
+@deffn {Procedure} dequeue! q
+
+@deffnx {Procedure} queue-pop! q
+Both of these procedures remove and return the datum at the front of
+the queue. @code{queue-pop!} is used to suggest that the queue is
+being used like a stack.
+@end deffn
+All of the following functions raise an error if the queue @var{q}
+is empty.
+
+
+@deffn {Procedure} dequeue-all! q
+
+Removes and returns (the list) of all contents of queue @var{q}.
+@end deffn
+
+@defun queue-front q
+
+Returns the datum at the front of the queue @var{q}.
+@end defun
+
+@defun queue-rear q
+
+Returns the datum at the rear of the queue @var{q}.
+@end defun