Version: 5.2
1 Imperative Queues
(require data/queue) |
This module provides a simple mutable queue representation, first-in/first-out only. Operations on queues mutate it in a thread-unsafe way.
(make-queue) → queue/c
Produces an empty queue.
Adds an element to the back of a queue.
(dequeue! q) → any/c q : nonempty-queue/c
Removes an element from the front of a nonempty queue, and returns that
element.
Examples: | ||||||||||||
|
(queue->list queue) → (listof any/c) queue : queue/c
Returns an immutable list containing the elements of the queue
in the order the elements were added.
Examples: | ||||||||
|
(queue-length queue) → integer? queue : queue/c
Returns the number of elements in the queue.
Examples: | |||||||||||||
|
(queue-empty? q) → boolean? q : queue/c
Recognizes whether a queue is empty or not.
Examples: | ||||||||||||
|
This predicate recognizes queues.
Examples: | ||||
|
Returns a sequence whose elements are the elements of
queue.
These contracts recognize queues; the latter requires the queue to
contain at least one value.