Глобально:
(defvar my-list (list 1 2 3 4 5))
Локально:
(let ((my-list (list 1 2 3 4 5)))
<code using my-list goes here>)
Примечание: В ANSI Common Lisp нет лексических глобальных переменных (хотя их можно подделать, используяdefine-symbol-macro
).Объявление глобальной переменной с помощью defvar
или defparameter
делает переменную special
, тем самым удаляя из переменной лексические свойства, такие как замыкание.Из-за этого вы можете отличать специальные лексические переменные, используя вкладыши в имени переменной:
(defvar *my-list* (list 1 2 3 4 5))