He visto que progn
se usa mucho mientras navego por los archivos de configuración de usuarios experimentados de Emacs. Encontré esta buena explicación deprogn
, pero lo que realmente me interesa es, ¿cuál es el beneficio de usar esta función? Tomemos, por ejemplo, este fragmento (tomado de la configuración 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)))
¿Hay alguna diferencia importante entre la configuración anterior y esta?
(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))
Siento que el primer ejemplo es de alguna manera más limpio, a pesar de que tiene más sintaxis, y mi intuición es que podría haber algún tipo de aumento de rendimiento por el uso progn
, pero no estoy seguro. Gracias por cualquier idea!
progn
se necesita: emacs.stackexchange.com/questions/39172/…
use-package
envolverá unprogn
alrededor de sus formularios: config si falta. Pruébelo: puede poner el punto al final de una(use-package ...)
y llamarM-x pp-macroexpand-last-sexp
para ver cómo se expande la macro. Verá que es idéntico para estos dos ejemplos.