#

Function FBOUNDP

Syntax:

fboundp name => generalized-boolean

Pronunciation:

[,ef'bandpee]

Arguments and Values:

name---a function name.

generalized-boolean---a generalized boolean.

Description:

Returns true if name is fbound; otherwise, returns false.

Examples:

     (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

Side Effects: None.

Affected By: None.

Exceptional Situations:

Should signal an error of type type-error if name is not a function name.

See Also:

symbol-function, fmakunbound, fdefinition

Notes:

It is permissible to call symbol-function on any symbol that is fbound.

fboundp is sometimes used to ``guard'' an access to the function cell, as in:

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

Defining a setf expander F does not cause the setf function `(setf` F`)` to become defined.

The following X3J13 cleanup issues, not part of the specification, apply to this section:

- SETF-FUNCTIONS-AGAIN:MINIMAL-CHANGES
- FUNCTION-NAME:LARGE

Copyright 1996-2005, LispWorks Ltd. All rights reserved.