Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv2326
Modified Files: sequences.lisp Log Message: Slightly better make-sequence and concatenate.
Date: Thu Jun 10 09:28:55 2004 Author: ffjeld
Index: movitz/losp/muerte/sequences.lisp diff -u movitz/losp/muerte/sequences.lisp:1.10 movitz/losp/muerte/sequences.lisp:1.11 --- movitz/losp/muerte/sequences.lisp:1.10 Thu Jun 10 06:51:24 2004 +++ movitz/losp/muerte/sequences.lisp Thu Jun 10 09:28:55 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Sep 11 14:19:23 2001 ;;;; -;;;; $Id: sequences.lisp,v 1.10 2004/06/10 13:51:24 ffjeld Exp $ +;;;; $Id: sequences.lisp,v 1.11 2004/06/10 16:28:55 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -1586,6 +1586,8 @@ (if (not initial-element-p) (make-string size) (make-string size :initial-element initial-element))) + (vector + (make-array size :initial-element initial-element)) (list (make-list size :initial-element initial-element))))
@@ -1600,10 +1602,11 @@ (copy-seq (first sequences))) ((= 0 (length (first sequences))) (apply #'concatenate result-type (cdr sequences))) - ((eq result-type 'vector) - (let* ((r (make-array (let ((length 0)) - (dolist (s sequences length) - (incf length (length s)))))) + ((member result-type '(vector string)) + (let* ((r (make-sequence result-type + (let ((length 0)) + (dolist (s sequences length) + (incf length (length s)))))) (i 0)) (dolist (s sequences) (replace r s :start1 i)