我一直在阅读 sicp 的第 5 章,并被困在一段代码上——即 5.2 中提供的汇编程序。这是它的样子:
(define (extract-labels text receive)
(if (null? text)
(receive '() '())
(extract-labels (cdr text)
(lambda (insts labels)
(let ((next-inst (car text)))
(if (symbol? next-inst)
(receive insts
(cons (make-label-entry next-inst insts)
labels))
(receive (cons (make-instruction next-inst) insts)
lables)))))))
不是只有当文本为空时才会调用 lambda 吗?那么我们如何才能要求'文本'的汽车呢?
编辑
感谢您的回答,但我仍然没有看到它。如果文本不为空,提取标签不会递归调用自身,直到文本为空?这种情况下怎么叫车呢?