常见的lisp错误,不是绑定变量

Cur*_*bda 1 common-lisp slime

我正在关注Practical Common Lisp.我跟着这个例子来到了发球台.当我在Emacs中编译时,C-c C-c我得到以下错误与此代码.

(defun make-cd (title artist rating ripped)
  (list :title title :artist artist :rating rating :ripped ripped))

(defvar *db* nil)
(defun add-record (cd)(push cd db))
Run Code Online (Sandbox Code Playgroud)

警告:在ADD-RECORD中:DB既未声明也未绑定,它将被视为已声明为SPECIAL.

我无法理解出了什么问题.它不能是代码因为我在clisp和sbcl中都试过,两者都得到类似的错误.为什么会这样?我的设置可能有问题吗?

use*_*lpa 7

您从此文本中复制错误:

(defun add-record (cd) (push cd *db*))
Run Code Online (Sandbox Code Playgroud)

其中*db*(注意*标志)指的是前一个

(defvar *db* nil)
Run Code Online (Sandbox Code Playgroud)