В одному з моїх розширень виявилася помилка, яка, зрештою, була викликана тим, що вона setне працює, як я очікувала:
;; -*- lexical-binding: t -*-
(let ((a nil))
(setq a t)
(print a))
(let ((a nil))
(set 'a t)
(print a))
при запуску з emacs -Q --batch -l temp.elвідбитками:
t
nil
Це здається мені дуже дивним. Я опинився під враженням, яке (setq a b)є скороченим (set 'a b). Що відбувається?