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 を正しく呼び出すにはどうすればよいですか? そして、レキシカルクロージャーとは何ですか?私はすべて混乱しています。
助けてくれてありがとう。