Miałem błąd w jednym z moich rozszerzeń, które ostatecznie okazało się być spowodowane setniedziałaniem zgodnie z oczekiwaniami:
;; -*- lexical-binding: t -*-
(let ((a nil))
(setq a t)
(print a))
(let ((a nil))
(set 'a t)
(print a))
po uruchomieniu z emacs -Q --batch -l temp.elwydrukami:
t
nil
Wydaje mi się to bardzo dziwne. Miałem wrażenie, że (setq a b)jest to skrót (set 'a b). Co się dzieje?