Accessor FDEFINITION

UP


Accessor FDEFINITION

Accessor FDEFINITION

構文

fdefinition function-name => definition
(setf (fdefinition function-name) new-definition)

引数と戻り値

function-name - 関数名。setfではないときは、 グローバル関数かのfboundである必要があります。
definition - function-nameという名前の現在のグローバル関数の定義
new-definition - 関数

定義

fdefinitionは、function-nameという名前によって定義された 現在のグローバル関数にアクセスします。 定義は、関数かもしれませんし、 あるいは特殊フォームかマクロを表した オブジェクトかもしれません。 もしfboundptrueであり、 かつfunction-nameがマクロか特殊フォームのときは、 fdefinitionの返却値はちゃんと定義できていませんが、 しかしfdefinitionがエラーを発することはありません。

例文

なし。

副作用

なし。

影響

なし。

例外

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

setfではない場合、 もしfunction-namefboundではないときは、 型undefined-functionのエラーが発生します。

参考

fboundp, fmakunbound, macro-function, special-operator-p, symbol-function

備考

fdefinitionは、fletlabelsによって 生成されたレキシカルな関数名の値にはアクセスできません。 グローバル環境の値にのみアクセスできます。

setffdefinitionと使うことで、 function-nameの関数が特殊フォームではないとき、 グローバルな関数定義を置き換えることができます。 setffdefinitionは、新しい値に関数を要求します。 function-namefdefinitionに、 シンボルか、リストか、 あるいはマクロか特殊フォームの名前から fdefinitionによって得られる値をセットするのはエラーです。


TOP, Github