İçinde tanımlanmış olan aşağıdaki örnek makroyu ele alalım macro.el.
(defmacro some-macro (&rest body)
`(let ((some-variable 1))
,@body))
Ve aşağıdaki işlevi, almak farklı bir dosyada tanımlanır , function.el.
(defun some-function ()
(some-macro (do-something)))
function.elBayt ne zaman derlenir, some-variablesözcüksel veya dinamik bağlama altında mı bağlanır?
Bu dosyanın kullanıp kullanmadığına bağlı olduğunu anlıyorum -*- lexical-binding: t; -*-, bu yüzden sorum özellikle aşağıdaki durumlarla ilgili:
- Eğer
function.elbağlayıcı, ancak kullanımları sözcükselmacro.eldeğildir. - Eğer
macro.elbağlayıcı, ancak kullanımları sözcükselfunction.eldeğildir.
some-varİçinde küresel (bir defvar ile) ilan edilmişse bir fark yaratır function.elmı? Varsa, özellikle olmadığı durumla ilgileniyorum .