私は現在、「The Little Schemer」の第 4 版を読んでいます。初期の演習の 1 つinsertR
は、リスト内の特定の値の右側に値を挿入する関数を作成することです。この本は最終的に次の定義に到達します。
(define insertR
(lambda (new old lat)
(cond
((null? lat) (quote ()))
(else (cond
((eq? (car lat) old)
(cons old
(cons new (cdr lat))))
(else (cons (car lat)
(insertR new old
(cdr lat)))))))))
私自身の定義は次のようになりました。
(define insertR
(lambda (new old lat)
(cond
((null? lat) (quote ()))
((eq? (car lat) old) (cons old (cons new (cdr lat))))
(else (cons (car lat) (insertR new old (cdr lat)))))))
それらは同等ですか?