5
之前,我有以下的代碼在我.emacs
:計算表達式它放在拉姆達
(dolist (mode '(scheme emacs-lisp lisp clojure))
(add-hook
(intern (concat (symbol-name mode) "-mode-hook"))
(lambda()
(progn
(run-programming-hook)
(message "%s" (concat (symbol-name mode) "-mode")))
顯然mode
變量是無效的,當拉姆達得到執行。問題是我如何評估mode
這樣一種方式,它不會將lambda作爲變量進入,而是作爲該變量的值?換句話說,我希望在鉤子運行時打印消息。
只是快速記:你的「......顯然是無效的」是錯誤的 - 它應該* * *不*是這樣,和Emacs Lisp是這仍然發生的幾種語言之一。它被稱爲動態範圍。與此相關的是,在Emacs中查找'lexical-let'形式,這是一種模擬可以工作的更爲明智的行爲。 – 2010-07-17 22:21:21