Я бачив, що progn
він використовується досить багато під час перегляду файлів конфігурації досвідчених користувачів Emacs. Я знайшов це приємне поясненняprogn
, але що мені дуже цікаво, в чому полягає користь від використання цієї функції? Візьмемо для прикладу цей фрагмент (узятий із конфігурації Sacha Chua ):
(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
щоб побачити, як розширюється макрос. Ви побачите, що це ідентично для цих двох прикладів.