Sto cercando di verificare se server-running-p
è disponibile nel mio file .emacs prima di chiamarlo. Ho già il seguente:Come verificare se una funzione (ad esempio server-running-p) è disponibile in Emacs?
(if (not (server-running-p))
(server-start))
Ma su alcuni computer in cui io uso Emacs, chiamando (server-running-p)
dà un errore perché ha detto chiamata non è disponibile. Quindi voglio verificare se server-running-p
è disponibile prima di chiamarlo. Ho pensato che il tentativo fosse boundp
, ma chiamando (boundp 'server-running-p)
restituire nil
anche se la chiamata (server-running-p)
ha esito positivo. Qual è il modo giusto per verificare che la chiamata server-running-p
non fallirà ... o almeno per sopprimere l'errore se detta chiamata fallisce. (E che tipo di oggetto è strano server-running-p
comunque che boundp
rendimenti nil
, ma chiamando riesce?)
Ciò è su Emacs 23.2.1, se fa alcuna differenza.
effettivamente trovato la risposta. È necessario utilizzare fboundp
per questo invece di boundp
, per qualche motivo.
Il motivo è che è possibile avere una funzione e una variabile con lo stesso nome (ad esempio 'font-lock-mode'). Quindi hai bisogno di diverse funzioni per chiedere "È una variabile?" e "questa è una funzione?" – cjm
Grazie. Mi ero completamente dimenticato di quella particolarità di alcune lingue Lisp. Ha più senso ora. –