Это вопрос о привязке переменных в функции define:
Если я определяю функцию «total» вот так, x в «total» привязывается к локальному x в let.
CL-USER> (let ((x 0))
(defun total (y)
(incf x y)))
TOTAL
CL-USER> (defvar x 10000)
X
CL-USER> (total 1)
1
, но, если я определяю «total» вот так, x привязывается к глобальному x в defvar:
CL-USER> (defvar x 10000)
X
CL-USER> (let ((x 0))
(defun total (y)
(incf x y)))
TOTAL
CL-USER> (total 1)
10001
Почему? Мне нужно объяснение, чтобы понять это. { {1}} среда: windows + emacs + slime + sbcl.Спасибо.