У меня есть следующая часть кода в моем .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
таким способом, которым это не входит в лямбду как в переменную, а скорее как значение в той переменной? Другими словами, я хочу, чтобы сообщение было распечатано, когда рычаг выполняется.
Что вы можете использовать, так это backquote:
(dolist (mode '(scheme emacs-lisp lisp clojure))
(add-hook
(intern (concat (symbol-name mode) "-mode-hook"))
`(lambda ()
(run-programming-hook)
(message "%s" ,(concat (symbol-name mode) "-mode")))))