私は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)))))))
ラムダは、テキストがnullの場合にのみ呼び出されますか?では、どうすれば「テキスト」の車を求めることができるでしょうか。
編集
答えてくれてありがとう、でもまだ見えない。テキストがnullでない場合、extract-lablesは、テキストがnullになるまで、それ自体を再帰的に呼び出しませんか?その場合、どのようにそれの車を呼ぶことができますか?