Veja o exemplo de macro a seguir, definido em macro.el
.
(defmacro some-macro (&rest body)
`(let ((some-variable 1))
,@body))
E tomar a seguinte função, definida em um arquivo diferente , function.el
.
(defun some-function ()
(some-macro (do-something)))
Quando function.el
é compilado por byte, será some-variable
vinculado sob ligação lexical ou dinâmica?
Entendo que isso depende de o arquivo ser usado -*- lexical-binding: t; -*-
, portanto, minha pergunta diz respeito especificamente às seguintes situações:
- Se
function.el
usa ligação lexical, masmacro.el
não. - Se
macro.el
usa ligação lexical, masfunction.el
não.
Faz diferença se some-var
foi declarado global (com um defvar) por dentro function.el
? Se isso acontecer, estou especificamente interessado no caso em que não ocorreu .