Function CONCATENATE

UP


Function CONCATENATE

Function CONCATENATE

構文

concatenate result-type &rest sequences => result-sequence

引数と戻り値

result-type - sequenceの型指定子
sequences - シーケンス
result-sequence - 型result-typeの正常なシーケンス

定義

concatenateは、引数に指定された順番で、 全sequencesの個々の全要素を含んだシーケンスを返却します。 シーケンスは型result-typeであり、 それは型sequenceのサブタイプでなければなりません。

全てのsequencesはコピーされ、 結果は、どのsequencesに対しても どのような構造でも共有されてはいけません。 したがって、もしただひとつだけシーケンスが与えられ、 その型がresult-typeであったとき、 concatenateは単純にそれを返却するのではなく、 sequencesをコピーすることが要求されます。

もしsequencesのどの要素も、 結果のシーケンスの要素になりえないときはエラーです。 もしresult-typelistのサブタイプのときは、 返却値はリストでしょう。

もしresult-typevectorのサブタイプの場合、 実装がresult-typeを要素の型として決めることができるのであれば、 その要素の型をアップグレードした結果が返却値の配列の要素の型になります。 しかし実装が要素の型を決定できないか、あるいは*のときは、 返却値の配列の要素の型はtになります。 その他の場合はエラーが発生します。

例文

(concatenate 'string "all" " " "together" " " "now") =>  "all together now"
(concatenate 'list "ABC" '(d e f) #(1 2 3) #*1011)
=>  (#\A #\B #\C D E F 1 2 3 1 0 1 1)
(concatenate 'list) =>  NIL
  (concatenate '(vector * 2) "a" "bc") should signal an error

影響

なし。

例外

result-typeが、 listのサブタイプでも、 vectorのサブタイプでもないとき、 型type-errorのエラーが発します。

result-typeで指定した要素数と、 sequencesの合計が違う場合は、 型type-errorのエラーが発します。

参考

append

備考

なし。


TOP, Github