% Accessor SUBSEQ
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
のエラーを通知する準備をしなければなりません。
なし。