% Declaration FTYPE
Declaration FTYPE
(ftype
type function-name*)
function-name - 関数名
type - 型指定子
declare
とproclaim
関数
function-nameという名前の関数に対して、関数の型typeを指定します。 例えば下記の通り。
(declare (ftype (function (integer list) t) ith)
(ftype (function (number) float) sine cosine))
もしあるひとつの関数が宣言されており、
その関数がレキシカルにローカル定義を持っているとき
(flet
かlabels
によって作成されたもの)、
その宣言はグローバル関数定義ではなく、ローカルの関数定義に適用されます。
ftype
宣言は変数の束縛には適用しません
(type
をご確認ください)。
function-nameのレキシカルな束縛に現れたものは、
マクロ定義には適用しません
(これはftype
が各関数名の関数定義について
function
の特定のサブタイプを宣言するからであり、
マクロはそのような関数を表すものではないためです)。
ftype
宣言は、自由宣言と境界宣言のどちらも使えます。
flet
かlabels
フォーム本体の前に現れた
関数のftype
宣言は、
関数の境界宣言として定義されます。
その他の文脈の宣言は自由宣言です。