错误的类型参数:sequencep,#<buffer *scratch*> 试图评估暂存缓冲区中的函数时

Wrong type argument: sequencep, #<buffer *scratch*> when trying to evaluate a function in the scratch buffer

当我尝试计算临时缓冲区(使用 eval-last-sexp)或迷你缓冲区中的一段 lisp 代码时,我的 emacs 停止工作,并出现上述错误。我无法从中恢复,我必须终止 emacs 进程。

函数是:

(defun add-to-list (val list-of-numbers)
(mapcar #'(lambda (num) (+ val num))
  list-of-numbers))

我已经尝试重新安装 spacemacs 以排除我的配置文件有问题,但我遇到了同样的问题。

这似乎是一个格式正确的函数,函数名称在求值后显示在迷你缓冲区中,因此它似乎求值良好。但是随后就出现了上面的错误。

有人可以根据这些信息解释一下吗?

add-to-list 是 Emacs 的内置函数。也许重新定义是您问题的根源? 如果您选择另一个函数名称会怎样?