如何在Emacs Lisp中将函数作为参数传递?

时间:2009-07-19 02:18:54

标签: emacs functional-programming elisp dot-emacs

我正在尝试将我创建的函数添加到钩子中,但显而易见的(对我的Schemer头脑)方式似乎不起作用。该功能在2个地方使用,我想保持我的代码DRY,所以没有匿名功能。虽然我可以将我的函数包装在lambda中,但必须有更好的方法。

不起作用:

(defun my-function ()
   ;; do my stuff)

(add-hook 'some-hook-list my-function)

我收到错误消息:

  

符号作为变量的值是无效的:   我的功能

1 个答案:

答案 0 :(得分:6)

我明白了。这很简单。只需引用该功能:

固定代码:     (defun my-function()        ;;做我的东西)

(add-hook 'some-hook-list 'my-function) ;;; There's a quote before my-function