Questo è probabilmente sciocco ma non ho abbastanza conoscenza Elisp per capire cosa sta succedendo rispetto alla quotazione e alla valutazione.Emacs Lisp: valuta variabile in alist
Supponiamo che io ho questo codice Elisp:
(add-to-list 'default-frame-alist '(width . 100))
(add-to-list 'default-frame-alist '(height . 50))
Il risultato sarà il valore di default-frame-alist previsto:
((height 50)
(width 100))
Ma ora se ho questo:
(setq my-frame-width 100)
(setq my-frame-height 50)
(add-to-list 'default-frame-alist '(width . my-frame-width))
(add-to-list 'default-frame-alist '(height . my-frame-height))
Risulterà -
((height my-frame-height)
(width my-frame-width))
e, a giudicare dalla geometria del telaio, non valuta mai tali variabili. Come faccio a visualizzare i valori effettivi di my-frame-width e height in questo alist? Ho troppe quotazioni? Ma non riesco a rimuovere dalle valutazioni add-to-list ...
Esattamente quello che stavo cercando, grazie! Domande come questa mi ricordano che dovrei prendere tempo per imparare l'elis sistematicamente. –
Vedere anche [Emacs lisp valutare la variabile in alist] (http://stackoverflow.com/questions/15485833/emacs-lisp-evaluate-variable-in-alist) per un problema simile .. –
Adoro l'ovvietà intuitiva del cosa backquote-e-comma. – Cheeso