【问题标题】:Common lisp error , not binding variables常见的 lisp 错误,而不是绑定变量
【发布时间】:2014-09-23 20:36:50
【问题描述】:

我正在关注 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))

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

我不明白出了什么问题。它不能是代码,因为我在 clisp 和 sbcl 中都尝试过,都得到了类似的错误。为什么会出现这种情况?会不会是我的设置有误?

【问题讨论】:

  • 'c-c c-c' 只编译一种形式,即光标所在的那一种。确保编译所有表单。

标签: common-lisp slime


【解决方案1】:

你从这个text复制错误:

(defun add-record (cd) (push cd *db*))

其中*db*(注意* 符号)指的是前一个

(defvar *db* nil)

【讨论】:

  • 嗨,谢谢你的帮助....我仍然收到一个错误...我在玩过之后粘贴了该代码以尝试使其工作...如果我使用终端我不明白同样的错误,仅在粘液中:警告:未定义的变量:DB...这是您提供的更正...我的设置是否可能已损坏?
  • 好的...所以我的函数和变量没有正确加载。我用空格命名我的文件,一开始并没有加载到 repl 然后编译......这如何解决了这个问题......
  • @CuriousLambda 很高兴你把它整理出来!
  • @CuriousLambda 如果此答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
猜你喜欢
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 2023-03-13
  • 2011-02-04
相关资源
最近更新 更多