1 Imperative Queues
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.
(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.
(queue-length queue) → integer? queue : queue/c
Returns the number of elements in the queue.
(queue-empty? q) → boolean? q : queue/c
Recognizes whether a queue is empty or not.
This predicate recognizes queues.
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.