問題のコードは次のとおりです。
(define multirember&co
(lambda (a lat col)
(cond
((null? lat)
(col (quote ()) (quote ())))
((eq? (car lat) a)
(multirember&co a
(cdr lat)
(lambda (newlat seen)
(col newlat
(cons (car lat) seen)))))
(else
(multirember&co a
(cdr lat)
(lambda (newlat seen)
(col (cons (car lat) newlat)
seen))))))
私はこれを一日中見つめていましたが、まったく理解できないようです。再定義している関数を再利用するcol
と、例では元の定義を使用しているように見えます。どうせ変わらんでしょ。newlat
パラメータとを渡さずに、どうすればそれを繰り返すことができますかseen
。
ピースが欠けているように見えるので、私の質問を説明するのは難しいです。おそらく誰かが本よりも明確なウォークスルーを提供できれば、それがどのように機能するかを理解できるかもしれません.