Как проверить, доступна ли функция (например, server-running-p) в Emacs?

я пытаюсь проверить, server-running- pдоступен в моем файле .emacs перед его вызовом. У меня уже есть следующее:

(if (not (server-running-p))
    (server-start))

Но на некоторых компьютерах, где я использую Emacs, вызов (server-running-p)дает ошибку, потому что указанный вызов недоступен. Поэтому я хочу проверить, доступен ли server-running-p, прежде чем вызывать его. Я думал, boundpсделает попытку, но вызов (boundp 'server-running-p)возвращает nil, хотя (server-running-p) p)вызов выполнен успешно. Как правильно проверить, что вызов server-running-pне завершится ошибкой... или, по крайней мере, подавить ошибку, если указанный вызов завершится ошибкой. (И вообще, что за странный объект server-running-p, который boundpвозвращает nil, но вызывает его успешно?)

Это на Emacs 23.2.1, если это имеет значение.


На самом деле нашел ответ. По какой-то причине вы должны использовать для этого fboundpвместо boundp.

16
задан Christian Hudon 7 May 2013 в 19:03
поделиться