Expose queue-prepare-for-dequeue
This commit is contained in:
parent
e0aae6e3e0
commit
3e6fd930c5
|
@ -4,6 +4,7 @@
|
||||||
queue?
|
queue?
|
||||||
enqueue
|
enqueue
|
||||||
enqueue-all
|
enqueue-all
|
||||||
|
queue-prepare-for-dequeue
|
||||||
dequeue
|
dequeue
|
||||||
list->queue
|
list->queue
|
||||||
queue->list
|
queue->list
|
||||||
|
@ -26,13 +27,13 @@
|
||||||
(queue (queue-head q)
|
(queue (queue-head q)
|
||||||
(append (reverse v) (queue-tail q))))
|
(append (reverse v) (queue-tail q))))
|
||||||
|
|
||||||
(define (shuffle q)
|
(define (queue-prepare-for-dequeue q)
|
||||||
(if (null? (queue-head q))
|
(if (null? (queue-head q))
|
||||||
(queue (reverse (queue-tail q)) '())
|
(queue (reverse (queue-tail q)) '())
|
||||||
q))
|
q))
|
||||||
|
|
||||||
(define (dequeue q)
|
(define (dequeue q)
|
||||||
(let ((q1 (shuffle q)))
|
(let ((q1 (queue-prepare-for-dequeue q)))
|
||||||
(values (car (queue-head q1))
|
(values (car (queue-head q1))
|
||||||
(queue (cdr (queue-head q1)) (queue-tail q1)))))
|
(queue (cdr (queue-head q1)) (queue-tail q1)))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue