X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fsequence.lisp;h=85d5276f3fe0d362999879dc0493505de625a431;hb=b2de12c4e1a6e77e7f3f22d056adcfeda79d085b;hp=6ac3ebfbe1e73bf3f5ec7b76739a127adad69fea;hpb=557a5f1a56ecbf0a90c17c2675cce4f27d7ef4bf;p=jscl.git diff --git a/src/sequence.lisp b/src/sequence.lisp index 6ac3ebf..85d5276 100644 --- a/src/sequence.lisp +++ b/src/sequence.lisp @@ -143,8 +143,15 @@ (rplacd pointer ()) drop-a)))) (copy-list (nthcdr a seq)))) - ((arrayp seq) - (if b - (slice seq a b) - (slice seq a))) + ((vectorp seq) + (let* ((b (or b (length seq))) + (size (- b a)) + (new (make-array size :element-type (array-element-type seq)))) + (do ((i 0 (1+ i)) + (j a (1+ j))) + ((= j b) new) + (aset new i (aref seq j))))) (t (not-seq-error seq)))) + + +