Почему эта функция каждый раз возвращает другое значение?
Может кто-нибудь объяснить следующее поведение? В частности, почему функция каждый раз возвращает новый список? Почему нетsome-list
инициализирован в'(0 0 0)
каждый раз, когда функция вызывается?
(defun foo ()
(let ((some-list '(0 0 0)))
(incf (car some-list))
some-list))
Выход:
> (foo)
(1 0 0)
> (foo)
(2 0 0)
> (foo)
(3 0 0)
> (foo)
(4 0 0)
Спасибо!
РЕДАКТИРОВАТЬ:
Кроме того, каков рекомендуемый способ реализации этой функции, если я хочу, чтобы функция выводила'(1 0 0)
каждый раз?