defadvice

関数の挙動を変更するのにdefadviceが便利

(defun foo (x)
   (+ x 1))

(defadvice foo (before my-foo (x) activate)   ;; foo関数を実行する前に動作させる。
  (ad-set-arg 0 5))                           ;; 第一引数に5をセットする。

(foo 1)6                                          ;; 第一引数に常に5がセットされるため6になる。

上のプログラムは何の意味もないプログラムだし、アドバイスした意味もないプログラムだが、動きがわかりやすいと思う。

すごく簡単に関数に変更加えれるね。