Widziałem, że jestem często progn
używany podczas przeglądania plików konfiguracyjnych doświadczonych użytkowników Emacsa. Znalazłem to miłe wytłumaczenieprogn
, ale naprawdę jestem ciekawy, jaka jest korzyść z używania tej funkcji? Weźmy na przykład ten fragment kodu (wzięty z konfiguracji 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)))
Czy jest jakaś istotna różnica między powyższą konfiguracją a tym?
(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))
Wydaje mi się, że pierwszy przykład jest w jakiś sposób bardziej przejrzysty, mimo że ma więcej składni, a moją intuicją jest to, że może zaistnieć pewien wzrost wydajności progn
, ale nie jestem pewien. Dziękujemy za wszelkie spostrzeżenia!
progn
jest potrzebny: emacs.stackexchange.com/questions/39172/…
use-package
zawinieprogn
wokół twoich: config formularzy, jeśli go brakuje. Wypróbuj: możesz umieścić punkt na końcu a(use-package ...)
i wywołać,M-x pp-macroexpand-last-sexp
aby zobaczyć, jak makro jest rozwijane. Zobaczysz, że jest identyczny dla tych dwóch przykładów.