В этом коде есть две привязки для inc_variable
. Внешняя привязка имеет значение 0 и никогда не изменяется. Затем каждый раз вокруг цикла вы создаете новую привязку для inc_variable
, которая устанавливается равной единице плюс значение внешней привязки (которое всегда равно 0). Таким образом, внутренняя привязка получает значение 1 каждый раз.
Помните, что let
всегда создает новую привязку: если вы хотите обновить значение существующей привязки, используйте setq
:
(let ((inc-variable 0))
(while t
(message "%S" inc-variable)
(setq inc-variable (+ inc-variable 1))))