すぐマクロ、すごくマクロ

今書いてる Emacs Lisp server-running-p が定義してあったら server-running-p を呼ぶみたいなのがあるんですが:

(when (fboundp 'server-running-p)
  (server-running-p))

これ:

(fbound-when server-running-p
  (server-running-p))

ってやってもいいんじゃないかって思っていました。

ということで書いたのがこれ:

(defmacro fbound-when (fn &rest body)
  `(when (fboundp ',fn)
     ,@body))

テスト:

(fbound-when hogehoge
             (message "hogehoge はあります! ぜったいにあります!1"))
;; =>  nil