2009-07-19 5 views
2

私はフックに作成した関数を追加しようとしていますが、明らかに(私のSchemerの考え方に)はうまくいかないようです。この関数は2つの場所で使用されていますので、私は自分のコードをDRYにして匿名関数を保持しません。ラムダで関数をラップすることはできますが、より良い方法が必要です。関数をEmacs Lispのパラメータとして渡すにはどうしたらいいですか?

は動作しません:

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

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

私は、エラーメッセージが出ます:

変数としてのシンボルの値が無効です: 私-機能

+2

Emacs Lispには、Lisp-1ではないスキームのような、lispの-2です。関数はそれぞれの名前空間にあります。 – jrockway

答えて

6

が、私はそれを考え出しました。それはかなり簡単です。

固定コード:ジャスト機能引用 を((私の機能をDEFUN) ;;私のものを行う)

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

明確にするには 'fooは(関数foo)(これはelispでは(引用符foo)と同じですが、CLのような他のlisp-2では同じではありません)の短縮形です。 – jrockway

+0

# 'my-function is lispierです。 – andrewdotn

関連する問題