バイナリ検索ツリーで、ある値のオカレンスを削除しようとしています。これは私がこれまで持っているものです。セットを使用! drschemeの変数の値を変更する
(define removeBin (lambda (x t)
(cond ((< x (car t)) (removeBin x (cadr t)))
((> x (car t)) (removeBin x (caddr t)))
((equal? x (car t))
(if(and (null? (cadr t)) (null? (caddr t))) '()
(let ((r (replacement t))) ((set! (car t) r) (removeBin r t))))))))
それは私に次のエラーを与えている:セット!:ない識別子で:(カートン) をそれは何を意味するのでしょうか?どのように私はそれを固定するように修正することができます!うまくいく?エラーメッセージが説明するように
は(car t)
は有効な識別子ではありませんので、その値を変更することはできません、あなた
私にお答えいただきありがとうございます。私はあなたが言ったことを試みたが、それでも私にエラーを与えている:未定義の識別子への参照:set-car! – user
@user:Schemeの実装で削除されたようですが、これが便利だと思います。http://groups.google.com/group/comp.lang.scheme/browse_thread/thread/19f7de0580e5117a –
実装を変更すると問題が解決しました。ありがとう。 – user