Я сейчас читаю 4-е издание "Маленького интригана". Одним из первых упражнений является создание функции 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)))))))
Они эквивалентны?