npt-japanese

% Special-Operator THE

UP


Special-Operator THE

Special Operator THE

構文

the value-type form => result*

引数と戻り値

value-type - 型指定子。評価されません。
form - フォーム。評価されます。
result - formを評価した結果の返却値。 これらの返却値はvalue-typeによって指定した型に一致しなければなりません。 詳細は下記を参照。

定義

theformによって返却された値が value-typeの型であることを指定します。 resultが宣言の型ではないときの結果は未定義です。

型が宣言されている値が実際にその型である限り、 formvalue-typeで指定されている値とは 異なる数の値を生成することは許されます。 欠落している値は、その型を確認するために nilとして扱われます。

value-typeで宣言された値の数に関係なく、 formが返す値の数は、 the 特殊フォームが返す値の数と同じになります。

例文

(the symbol (car (list (gensym)))) =>  #:G9876
(the fixnum (+ 5 7)) =>  12
(the (values) (truncate 3.2 2)) =>  1, 1.2
(the integer (truncate 3.2 2)) =>  1, 1.2
(the (values integer) (truncate 3.2 2)) =>  1, 1.2
(the (values integer float) (truncate 3.2 2))   =>  1, 1.2
(the (values integer float symbol) (truncate 3.2 2)) =>  1, 1.2
(the (values integer float symbol t null list) 
     (truncate 3.2 2)) =>  1, 1.2
(let ((i 100))
   (declare (fixnum i))
   (the fixnum (1+ i))) =>  101
(let* ((x (list 'a 'b 'c))
       (y 5))
   (setf (the fixnum (car x)) y)
   x) =>  (5 B C)

影響

なし。

例外

formが生成した返却値が指定したvalue-typeでは なかったときの結果は未定義です。

参考

values

備考

values型指定子は、多値の型を示すのに使われます。

(the (values integer integer) (floor x y))
(the (values string t)
     (gethash the-key the-string-table))

setfは、theの型指定子を使用できます。 この場合、宣言は新しい値を指定したフォームへ変換されます。 そのsetfの結果が解析されます。


TOP, Github