我目前正在阅读《小阴谋家》的第 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)))))))
它们是等价的吗?