J'ai vu progn
beaucoup utilisé lorsque je parcourais les fichiers de configuration d'utilisateurs expérimentés d'Emacs. J'ai trouvé cette belle explicationprogn
, mais ce qui m'intéresse vraiment, c'est quel est l'avantage d'utiliser cette fonction? Prenons par exemple cet extrait (extrait de la configuration de 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)))
Y a-t-il une différence majeure entre la configuration ci-dessus et celle-ci?
(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))
J'ai l'impression que le premier exemple est en quelque sorte plus propre, même s'il a plus de syntaxe, et mon intuition est qu'il pourrait y avoir une sorte d'amélioration des performances progn
, mais je ne suis pas sûr. Merci pour tout aperçu!
progn
est nécessaire: emacs.stackexchange.com/questions/39172/…
use-package
enroulera unprogn
autour de vos formulaires: config s'il est manquant. Essayez-le: vous pouvez mettre un point à la fin d'un(use-package ...)
et appelerM-x pp-macroexpand-last-sexp
pour voir comment la macro est développée. Vous verrez qu'il est identique pour ces deux exemples.