Я видел progn
, как меня довольно часто используют, просматривая файлы конфигурации опытных пользователей Emacs. Я нашел это хорошее объяснениеprogn
, но что меня действительно интересует, так это какая польза от использования этой функции? Возьмем, к примеру, этот фрагмент (взят из конфигурации Саши Чуа ):
(use-package undo-tree
:defer t
:ensure t
:diminish undo-tree-mode
:config
(progn
(global-undo-tree-mode)
(setq undo-tree-visualizer-timestamps t)
(setq undo-tree-visualizer-diff t)))
Есть ли существенная разница между вышеуказанной конфигурацией и этой?
(use-package undo-tree
:defer t
:ensure t
:diminish undo-tree-mode
:config
(global-undo-tree-mode)
(setq undo-tree-visualizer-timestamps t)
(setq undo-tree-visualizer-diff t))
Я чувствую, что первый пример несколько чище, хотя у него больше синтаксиса, и моя интуиция заключается в том, что при использовании может быть какое-то повышение производительности progn
, но я не уверен. Спасибо за любые идеи!
progn
это необходимо: emacs.stackexchange.com/questions/39172/…
use-package
обтеканиеprogn
форм: config, если оно отсутствует. Попробуйте: вы можете поставить точку в конце a(use-package ...)
и вызвать,M-x pp-macroexpand-last-sexp
чтобы увидеть, как раскрывается макрос. Вы увидите, что это идентично для этих двух примеров.