These are ordinary first-in, first-out queues.
The procedures are in structure queues
.
(make-queue) -> queue
(queue? value) -> boolean
(queue-empty? queue) -> boolean
(enqueue! queue value)
(dequeue! queue) -> value
Make-queue
creates an empty queue, queue?
is a predicate for
identifying queues, queue-empty?
tells you if a queue is empty,
enqueue!
and dequeue!
add and remove values.
(queue-length queue) -> integer
(queue->list queue) -> values
(list->queue values) -> queue
(delete-from-queue! queue value) -> boolean
Queue-length
returns the number of values in queue.
Queue->list
returns the values in queue as a list, in the
order in which the values were added.
List->queue
returns a queue containing values, preserving
their order.
Delete-from-queue
removes the first instance of value from
queue
, using eq?
for comparisons.
Delete-from-queue
returns #t
if value is found and
#f
if it is not.