キュー内のアイテムを削除する際のコードを次に示します。私は最後の言葉がなぜそこにあるのか分からない。私は何か簡単なものを紛失していると確信しています。スキーム内のキューの理解
(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)))
^この最後の行は私の質問です。なぜそこに待ち行列がありますか? front-ptrがfront-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))
これは戻り値を指定するためだけに使用されます。キュー – zallarak