Questions marquées «lexical-scoping»



3
Defun inside let avec lexical binding donne un avertissement de compilation d'octets "la fonction n'est pas connue pour être définie"
Je veux obtenir l'effet d'une variable statique en utilisant defuninside of letavec une liaison lexicale pour créer une fermeture. Cependant, lors de la compilation d'octets du fichier, je reçois un avertissement. Suis-je en train de faire quelque chose de mal, ou sinon, existe-t-il un moyen de supprimer cet avertissement? J'ai …


1
Gérer «Avertissement: affectation à une variable libre» lorsque certaines bibliothèques peuvent manquer par conception
Compilation d'octets de mon mode: (defun dict-setup-expansions () "Add `dict-mode' specific expansions." (set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article))) donne un avertissement: Warning: assignment to free variable `er/try-expand-list' C'est une situation normale car elle er/try-expand-listest définie dans externa; bibliothèque expand-regionqui est à http://elpa.gnu.org Mon mode enregistre l'extension à la expand-regionbibliothèque mais il …

1
Comment la portée des variables pour les macros est-elle déterminée?
Prenez l'exemple de macro suivant, défini dans macro.el. (defmacro some-macro (&rest body) `(let ((some-variable 1)) ,@body)) Et prendre la fonction suivante, définie dans un autre fichier , function.el. (defun some-function () (some-macro (do-something))) Quand function.elest compilé en octets, sera-t- some-variableil lié sous une liaison lexicale ou dynamique? Je comprends que …

3
Pourquoi la portée de defvar fonctionne-t-elle différemment sans une valeur init?
Supposons que j'ai un fichier nommé elisp-defvar-test.elcontenant: ;;; 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 Je charge ce fichier, puis je vais dans …

2
'La valeur du symbole en tant que variable est nulle' dans le rappel depuis url-retrieve
Lors de l'exécution de ce qui suit, j'obtiens une erreur: (defun caller (func) (url-retrieve "http://m0smith.freeshell.org/" (lambda (status) (funcall func)))) (caller (lambda() (message "called"))) Résultat: error in process filter: Symbol's value as variable is void: func Quelle est la meilleure façon de résoudre ce problème? Fondamentalement, je dois accepter un rappel …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.