Reputation: 5515
Here is some code on deleting an item in a queue. I don't understand why the last word, queue is there. I am sure Im missing something simple - Could someone please clarify?
(define (delete-queue! queue)
(cond ((empty-queue? queue)
(error "DELETE! called with an empty queue" queue))
(else
(set-front-ptr! queue (cdr (front-ptr queue)))
queue)))
^ This last line is where my question is; why is queue there? As long as the front-ptr is set to the cdr of the front-ptr, isn't that all that's needed for the exclusion of the first element in the queue?
Here are definition of some of the functions defined above:
(define (front-ptr queue) (car queue))
(define (rear-ptr queue) (cdr queue))
(define (set-front-ptr! queue item) (set-car! queue item))
(define (set-rear-ptr! queue item) (set-cdr! queue item))
Upvotes: 1
Views: 1440
Reputation: 86
It makes the function return the queue. It doesn't look like it's needed for removing the first item, no. Maybe it's handy for the code that calls the function.
Upvotes: 3