REPLACE - замена подпоследовательности

replace seq1 seq2 &key start1 start2 end1 end2 from-endseq1

Деструктивно изменяет последовательность seq1, замещая её часть элементами подпоследовательности seq2.

Аргументы
start1, end1
Целочисленные индексы в seq1, задающие начало и конец замещаемой области.
start2, end2
Целочисленные индексы в seq2, задающие начало и конец замещающей области.

Если подпоследовательности имеют разную длину, то наименьшая длина определяет число замещаемых элементов. Лишние элементы с правого конца более длинной игнорируются.

Фактическое число копируемых элементов равно

min(end1 - start1, end2 - start2)

Когда обе последовательности — один и тот же объект и области пересекаются, исходная область сначала словно копируется во временную память и только затем замещает целевую область.

См. также
Примеры
(replace "abcdefghij" "0123456789" :start1 4 :end1 7 :start2 4)
"abcd456hij"
(setq s "012345678")
"012345678"
(replace s s :start1 2 :start2 0)
"010123456"
s
"010123456"