Accessor SUBSEQ
subseq sequence start &optional end => subsequence
(setf (subseq sequence start &optional end) new-subsequence)
sequence - 正常なシーケンス
start, end - sequenceの境界インデックス指定子。 デフォルトはstart, endそれぞれ0とnil。
subsequence - 正常なシーケンス
new-subsequence - 正常なシーケンス
subseqは、 sequenceのstartとendの境界内の サブシーケンスのコピーを作成します。
startは元のsequenceのオフセットであり、 サブシーケンスの開始の位置の印であり、 endは最後の要素に続く位置の印です。
subseqは常に結果のシーケンスを新しく確保します。 古いシーケンスのストレージを共有することはありません。 返却値のサブシーケンスは、常にsequenceと同じ型です。
もしsequenceがvectorのとき、 返却値は一次元の新しいsimple-arrayであり、 sequenceと同じ実際の配列の要素の型を持ちます。 もしsequenceがリストのときは、返却値は新しいリストです。
setfのsubseqは、 サブシーケンスの要素を新しい値として受け取ったシーケンスの要素に、 破壊的に置き換えを行います。 もしサブシーケンスと新しいシーケンスが同じ長さではないとき、 短い方の長さが置換の要素数になります。 長い方のシーケンスの終わりの位置にある残りの要素は、 この操作では修正されません。
(setq str "012345") => "012345"
(subseq str 2) => "2345"
(subseq str 3 5) => "34"
(setf (subseq str 4) "abc") => "abc"
str => "0123ab"
(setf (subseq str 0 2) "A") => "A"
str => "A123ab"なし。
なし。
sequenceが正常なシーケンスでないとき、 型type-errorのエラーを通知する準備をしなければなりません。 new-sequenceが正常なシーケンスでないとき、 型type-errorのエラーを通知する準備をしなければなりません。
なし。