Domande taggate «lexical-scoping»



3
Defun dentro let con associazione lessicale avverte di compilazione byte "la funzione non è nota per essere definita"
Voglio ottenere l'effetto di una variabile statica usando defuninside of letcon associazione lessicale per creare una chiusura. Tuttavia, durante la compilazione di byte del file, viene visualizzato un avviso. Sto facendo qualcosa di sbagliato o, in caso contrario, c'è un modo per sopprimere questo avviso? Ho creato un MCVE: ;; …


1
Trattare con "Avvertenza: assegnazione a variabile libera" quando alcune librerie possono mancare in base alla progettazione
Compilazione dei byte della mia modalità: (defun dict-setup-expansions () "Add `dict-mode' specific expansions." (set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article))) dà avvertimento: Warning: assignment to free variable `er/try-expand-list' Questa è una situazione normale perché er/try-expand-listè definita in esterno; biblioteca expand-regionche si trova su http://elpa.gnu.org La mia modalità registra l'estensione nella expand-regionlibreria ma …

1
Come viene determinato l'ambito variabile per le macro?
Prendi la seguente macro di esempio, definita in macro.el. (defmacro some-macro (&rest body) `(let ((some-variable 1)) ,@body)) E prendere la seguente funzione, definita in un file diverso , function.el. (defun some-function () (some-macro (do-something))) Quando function.elviene compilato byte, verrà some-variableassociato con associazione lessicale o dinamica? Capisco che dipende dall'utilizzo del …

3
Perché lo scoping defvar funziona in modo diverso senza un valore iniziale?
Supponiamo di avere un file chiamato elisp-defvar-test.elcontenente: ;;; 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 Carico questo file e poi vado nel buffer …

2
"Il valore del simbolo come variabile è nullo" nella richiamata da url-recuperare
Quando eseguo quanto segue ricevo un errore: (defun caller (func) (url-retrieve "http://m0smith.freeshell.org/" (lambda (status) (funcall func)))) (caller (lambda() (message "called"))) Risultato: error in process filter: Symbol's value as variable is void: func Qual è il modo migliore per risolvere questo problema? Fondamentalmente ho bisogno di accettare un callback da qualche …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.