% Function MAKE-SEQUENCE
Function MAKE-SEQUENCE
make-sequence
result-type size &key initial-element => sequence
result-type - sequence
の型指定子
size - 非負の整数
initial-element - オブジェクト。デフォルトは実装依存。
sequence - 正常なシーケンス
型がresult-type、長さがsize、各要素がinitial-elementで初期化された、 シーケンスが返却されます。
もしresult-typeがlist
のサブタイプの場合、
リストが返却されます。
もしresult-typeがvector
のサブタイプの場合、
実装がresult-typeを要素の型として決めることができるのであれば、
その要素の型をアップグレードした結果が返却値の配列の要素の型になります。
しかし実装が要素の型を決定できないか、あるいは*
のときは、
返却値の配列の要素の型はt
になります。
その他の場合はエラーが発生します。
(make-sequence 'list 0) => ()
(make-sequence 'string 26 :initial-element #\.)
=> ".........................."
(make-sequence '(vector double-float) 2
:initial-element 1d0)
=> #(1.0d0 1.0d0)
(make-sequence '(vector * 2) 3) should signal an error
(make-sequence '(vector * 4) 3) should signal an error
実装。
initial-elementが、 返却値のsequenceに格納できないオブジェクトであったときの結果は不明です。
result-typeが、
list
のサブタイプでも、
vector
のサブタイプでもないとき、
型type-error
のエラーが発します。
result-typeで指定した要素数とsizeの値が違う場合は、
型type-error
のエラーが発します。
(make-sequence 'string 5) == (make-string 5)