作为一个新的 Lisp 用户,我试图做一个简单的替换方法,但不明白为什么这不能正常工作。
;replace element e1 with element e2 in a list L
(defun my-replace (e1 e2 L)
(cond
;if the first of L is e1, cons e2 & rest L
((equal (car L) (e1)) (cons (e2) (my-replace (e1 e2 (cdr L)))))
;else cons e1 & rest L
(t (cons (e1) (my-replace (e1 e2 (cdr L)))))))