Voglio consentire all'utente di scegliere il proprio comando nella "personalizzare" emacs backend (e generalmente essere in grado di memorizzare un nome di forma eseguibile in una variabile), ma questo non funziona:In elisp, come si inserisce una funzione in una variabile?
(defun dumb-f()
(message "I'm a function"))
(defvar my-function "dumb-f")
(my-function)
==> Debugger entered--Lisp error: (invalid-function "dumb-f")
(setq my-function 'dumb-f)
(my-function)
==> Debugger entered--Lisp error: (invalid-function "dumb-f")
ho provato varie forme, ma ancora senza fortuna, e sto avendo difficoltà a cercarlo, ottengo kilopages di risultati su funzioni e variabili, ma nessuno su come mettere il primo nel secondo ..?
Sei a un tiro. Grandi risposte –
Il mio esempio è stato gravemente scelto, mi spiace: voglio usare personalizzare, per esempio permettere all'utente di scegliere il proprio programma di posta, in questo modo:. '(defcustom mio-mail-programma "gnu" comando "client di posta Esempio : " : tipo 'stringa : gruppo' mail-bugger ' Non riesco ad eseguire (programma di posta elettronica) ..? – yPhil
Quindi dovresti usare ': type 'function' piuttosto che'' string', con un valore predefinito di ''gnus' piuttosto che' "gnus" ', e quindi useresti' (funcall my-mail-program) ' . Assicurati di comprendere la differenza tra una stringa e un simbolo. – phils