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
します。試してみてください:aの最後にポイントを置いて(use-package ...)
呼び出しM-x pp-macroexpand-last-sexp
て、マクロがどのように展開されるかを確認できます。これらの2つの例で同じであることがわかります。