Perguntas com a marcação «lexical-scoping»





1
Lidando com “Aviso: atribuição à variável livre” quando certas bibliotecas podem estar ausentes por design
Compilação de bytes do meu modo: (defun dict-setup-expansions () "Add `dict-mode' specific expansions." (set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article))) dá aviso: Warning: assignment to free variable `er/try-expand-list' Esta é uma situação normal porque er/try-expand-listé definida em externa; biblioteca expand-regionque está em http://elpa.gnu.org Meu modo registra extensão na expand-regionbiblioteca, mas não há …

1
Como é determinado o escopo da variável para macros?
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-variablevinculado sob ligação lexical ou dinâmica? Entendo que isso …

3
Por que o escopo defvar funciona de maneira diferente sem um valor init?
Suponha que eu tenha um arquivo chamado elisp-defvar-test.elcontendo: ;;; elisp-defvar-test.el --- -*- lexical-binding: t -*- (defvar my-dynamic-var) (defun f1 (x) "Should return X." (let ((my-dynamic-var x)) (f2))) (defun f2 () "Returns the current value of `my-dynamic-var'." my-dynamic-var) (provide 'elisp-dynamic-test) ;;; elisp-defvar-test.el ends here Carrego esse arquivo e, em seguida, vou …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.