Похоже, вы смешиваете синтаксис Lisp и Scheme для определения функций. В Лиспе, поскольку вы используете defun
вместо defvar
, уже подразумевается, что вы определяете функцию, поэтому вам не нужно переносить код в lambda
:
(defun rember (a lat)
(cond
((null lat) '())
(else (cond
((eq (car lat) a) (cdr lat))
(else (rember a
(cdr lat)))))))
(Далее вы обнаружите, что else
не обрабатывается специально внутри cond
в Emacs Lisp, поэтому вам нужно будет использовать t
вместо этого.)