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) (