のn番目の要素を削除して、私は()(」1 2 3 4 Dを定義)ない場合は、リストこんにちはリスト
(define (delete l n)
(if (= n 1)
(begin (set! l (cdr l))
l)
(begin (set-cdr! (n_sub_list (- n 1) l)
(cdr (n_sub_list n l)))
l)))
(define n_sub_list n l)
(if (= n 1) l
(n_sub_list (- n 1) (cdr l))))
のn番目の要素を削除するには、次の手順を書き、 (削除!d 2)私はそれが(1 3 4)ですが、私は継続して(削除!d 1)を行う場合、私は(1 3 4)が間違っている理由は何ですか?
だから私は設定しているので!関数では、私は望みの結果を返しますが、元の変数dを変更することはありませんし、あなたのコードでは、私は望みの結果を得て元のリストdに割り当てます。そして、これを行うことによって、 "削除"、そう? – user7054784
@ user7054784はい。あなたは価値を変えることはありませんが、特定の束縛を変えます。ほとんどの言語で同じことが成り立ちますが、そのほとんどは価値のあるものです。 – Sylwester