(lispkit queue)

Library (lispkit queue) provides an implementation for mutable queues, i.e. mutable FIFO buffers.


Symbol representing the queue type. The type-for procedure of library (lispkit type) returns this symbol for all queue objects.

Returns a new empty queue.

Returns a new queue with x on its first position followed by the remaining parameters.

(dequeue! (queue 1 2 3))  ⇒ 1 

Returns #t if obj is a queue; otherwise #f is returned.

Returns #t if queue q is empty.

Returns the size of queue q, i.e. the number of elements buffered in q.

Returns #t if queue q1 has the exact same elements in the same order like queue q2; otherwise, #f is returned.

Inserts element x at the end of queue q.

Returns the first element in queue q. If the queue is empty, an error is raised.

Removes the first element from queue q and returns its value.

(define q (make-queue))
(enqueue! q 1)
(enqueue! q 2)
(dequeue! q)     ⇒ 1
(queue-front q)  ⇒ 2
(queue-size q)   ⇒ 1

Removes all elements from queue q.

Returns a copy of queue q.

Returns a list consisting of all elements in queue q in the order they were inserted, i.e. starting with the first element.

(define q (make-queue))
(enqueue! q 1)
(enqueue! q 2)
(enqueue! q 3)
(queue->list q)  ⇒ (1 2 3)

Returns a new queue consisting of the elements of list l. The first element in l will become the front element of the new queue that is returned.

(dequeue! (list->queue '(1 2 3)))  ⇒ 1

Inserts the elements of list l into queue q in the order they appear in the list.

(define q (list->queue '(1 2 3)))
(list->queue! q '(4 5 6))
(queue->list q)  ⇒ (1 2 3 4 5 6)

Last updated