Data structures 理解scheme中的队列

Data structures 理解scheme中的队列,data-structures,lisp,scheme,queue,Data Structures,Lisp,Scheme,Queue,下面是一些关于删除队列中项目的代码。我不明白为什么最后一句话是“排队”。我确信我遗漏了一些简单的东西——有人能澄清一下吗 (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))

下面是一些关于删除队列中项目的代码。我不明白为什么最后一句话是“排队”。我确信我遗漏了一些简单的东西——有人能澄清一下吗

(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))) 
^最后一行是我的问题所在;为什么排队?只要前面的ptr设置为前面ptr的cdr,就不需要排除队列中的第一个元素了吗

以下是上述一些功能的定义:

(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))

它使函数返回队列。删除第一项似乎不需要它,不需要。也许它对于调用函数的代码很方便。

它只是用来指定返回值;队列