2.4.19 型指定子

型指定子(type specifier)とは型を記述するための式のことです。型、つまりタイプは可能な値のセットを表します。型指定子はプリミティブ型と複合型に分類することができます。

型指定子は宣言を通じた関数インターフェイスの文書化(declareフォームを参照)、構造体のスロット値の指定(Structures in Common Lisp Extensions for GNU Emacs Lispを参照)、cl-theによる型チェック(Declarations in Common Lisp Extensions for GNU Emacs Lispを参照)など、いくつかの目的のために使用されます。

Primitive type specifiers

プリミティブ型指定子は基本的な型指定子用(他の型指定子と複合されていない型)。

ビルトインのプリミティブタイプ(integerfloatstringなど)はEmacs Lispオブジェクトの型階層にリストされている。

複合型指定子

複合型はよりシンプルな型を組み合わせたり変更することによって、より複雑な型を定義したり的確な型仕様を定義する目的のために用いられる。

以下は複合型指定子のリスト:

(or type-1type-n)

型指定子orは与えられたタイプのうち少なくとも1つを満たすような型の記述に用いられる。

(and type-1type-n)

型指定子andは与えられたタイプすべてを満たすような型を記述する。

(not type)

型指定子notは指定されたタイプ以外の任意のタイプを定義する。

(member value-1value-n)

型指定子memberは明示的にリストされた値だけを含んだ型の指定ができる。

(function (arg-1-typearg-n-type) return-type)

型指定子functionは関数の引数とリターン値の型の記述に用いられる。引数タイプには関数の引数に合わせるために、シンボル&optional&restを織り交ぜることもできる(引数リストの機能を参照)。

以下の型指定子は1つ目のタイプがsymbol、2つ目のオプションのパラメーターのタイプがfloatであり、integerをリターンするような関数を表している。

 (function (symbol &optional float) integer)
(integer lower-bound upper-bound)

型指定子integerは、範囲を指定することで整数のサブセットを定義する複合型として用いることもできる。この複合型を使えば、与えられた型にたいしてどんな整数が有効かを精密に制御できるだろう。

ここでlower-boundは範囲で最小の整数、upper-boundは最大の整数の値である。下限や上限に制限がないことを示すために、*を使うことができる。

以下は-10から10までの整数を表している:

(integer -10 10)

以下は単一の10という値を表す:

(integer 10 10)

以下は負の無限大から10までのすべての整数:

(integer * 10)
This page has generated for branch:work/emacs-30_69b16e5c63840479270d32f58daea923fe725b90, commit:8c196e027afcda4529432b01ae733033b6ca1270 to check Japanese translation.