Я новичок в Lisp, и я читал о примере текстового генератора в ANSI Common Lisp, глава 8. Я следую примеру и задал функцию «видеть» в области переменной LET «prec»,Несвязанная переменная в Common Lisp
(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.
Затем, когда я вернулся в РЕПЛ и попытался вызвать увидеть после загрузки скомпилированных версий файла произошла ошибка:
The variable PREV is unbound. [Condition of type UNBOUND-VARIABLE]
Как вызвать видеть правильно? А для чего лексическое закрытие? Я все смущен.
Спасибо за помощь.
Извините, но я не ответил ранее. Теперь, когда вы указали опечатку, я чувствую себя очень неловко, чтобы опубликовать это, даже не заметив этого! Благодарим за терпение, и ваше разъяснение лексического закрытия является лучшим и самым кратким, что я видел до сих пор! – user1667687