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
宣言は、 関数の境界宣言として定義されます。 その他の文脈の宣言は自由宣言です。