Function FBOUNDP

UP


Function FBOUNDP

Function FBOUNDP

構文

fboundp name => generalized-boolean

発音

[,ef’bandpee]

引数と戻り値

name - 関数名
generalized-boolean - generalized-boolean

定義

namefboundならtrueを、 それ以外ならfalseを返却します。

例文

(fboundp 'car) =>  true
(fboundp 'nth-value) =>  false
(fboundp 'with-open-file) =>  true
(fboundp 'unwind-protect) =>  true
(defun my-function (x) x) =>  MY-FUNCTION
(fboundp 'my-function) =>  true
(let ((saved-definition (symbol-function 'my-function)))
  (unwind-protect (progn (fmakunbound 'my-function)
                         (fboundp 'my-function))
    (setf (symbol-function 'my-function) saved-definition)))
=>  false
(fboundp 'my-function) =>  true
(defmacro my-macro (x) `',x) =>  MY-MACRO
(fboundp 'my-macro) =>  true
(fmakunbound 'my-function) =>  MY-FUNCTION
(fboundp 'my-function) =>  false
(flet ((my-function (x) x))
  (fboundp 'my-function)) =>  false

副作用

なし。

影響

なし。

例外

nameが関数名でないとき、 型type-errorのエラーが発生します。

参考

symbol-function, fmakunbound, fdefinition

備考

どんなシンボルでもfbouundであれば、 symbol-functionを呼び出すことができます。

fboundpは、よく関数セルにアクセスするときの保護として使われます。 例えば下記の通り。

(if (fboundp x) (symbol-function x))

setf-expanderの定義Fは、 (setf F)であらわされるsetf関数の定義にはなりません。


TOP, Github