【发布时间】:2012-09-13 06:47:35
【问题描述】:
我是 Lisp 新手,我正在阅读 ANSI Common Lisp 第 8 章中的一个文本生成器示例。我按照示例并在 LET 变量“prec”的范围内定义了一个函数“see”,
(let ((prec '|.|))
(defun see (symb)
(let ((pair (assoc symb (gethash prev *words*))))
(if (null pair)
(push (cons symb 1) (gethash prev *words*))
(incf (cdr pair))))
(setf prev symb)))
并将其保存到 lisp 文件中。
然后当我返回REPL并在加载文件的编译版本后尝试调用see时,出现错误:
The variable PREV is unbound.
[Condition of type UNBOUND-VARIABLE]
如何正确调用 see?什么是词法闭包?我都糊涂了。
感谢您的帮助。
【问题讨论】:
标签: common-lisp