В принципе, когда следует использовать процедуру Emacs Lisp function? Я не нашел примеров, в которых есть разница в поведении, если вы передаете функции в качестве аргументов 'like-this или #'like-this. На самом деле, если я оцениваю (eq 'goto-char #'goto-char), он возвращает t.
Код Emacs Lisp, с которым я столкнулся, редко использует function/#'; авторы просто quote/' все.
Пример: (add-hook 'emacs-lisp-hook 'turn-on-eldoc-mode)
Однако я могу найти несколько контрпримеров. Здесь один из исходного кода Emacs 24.3 electric.el:
(add-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function
'append)
Угадай и дальнейшие вопросы:
- Это просто стилистическая конвенция Lisp -2?
- Это связано с байтовой компиляцией?
- Это имеет значение только для библиотек? Например, если вы хотите, чтобы ваш код запускался в огромном количестве сред и версий Emacs? (Следствие было бы, если бы вы просто "топик-мастеринг", тогда вам не нужно беспокоиться обо всем этом.)
- Когда следует цитировать лямбда-выражения? Когда я могу оставить их без кавычек?
Например,(do-something '(lambda …
по сравнению с(do-something (lambda … - Было ли какое-то ограничение в более ранней версии Emacs, которая породила эти грани elisp? Например, могу ли я в основном игнорировать разницу между
'и#', если я использую версию Emacs более позднюю, чем X?