(rontolisp) docs
← 関数

coerce

(coerce object result-type)

object を指定されたシーケンス型または浮動小数点数型に変換します。result-type には 'list'vector'string (およびそれらの simple-/base- 表記)、'(vector t)'(string 8) のような複合指定、浮動小数点数型 ('float'single-float'double-float'short-float'long-float — すべて単一の double 表現)、あるいは t (恒等変換) を指定できます。計算された結果型も受理され、実行時にまさにそれらのファミリの中でディスパッチします。したがって type を変数に持つ (coerce seq type) はリテラル形式と同じ振る舞いになります。'string を結果とするには文字のシーケンスが必要です。すでに要求された型の値はそのまま返されます。coerce は第一級の関数値ではありません (#'coerce は利用できません) ので、直接呼び出してください。

ベクタの result-type(unsigned-byte 8)(unsigned-byte 16)(unsigned-byte 32) の要素型を綴っている場合 — '(vector (unsigned-byte 8))'(simple-array (unsigned-byte 32) (*))make-arrayconcatenate と同じ特殊化ベクタを構築します。array-element-type はその要素型を返し、対応する simple-array 指定子に対する typep は真になります。要素は要素幅にマスクされて格納されます。それ以外の要素型では要素型 t の一般ベクタになります。ルックアップテーブルは通常この綴りで書かれますが、要素がすべてリテラルのテーブルはコンパイル系のバックエンドではコンパイル時に構築されます。