+cl-kmrcl (1.25-2) unstable; urgency=low
+
+ * Add nsubseq
+ * Rework list-to-delimited-sequence
+
+ -- Kevin M. Rosenberg <kmr@debian.org> Fri, 7 Feb 2003 07:19:14 -0700
+
cl-kmrcl (1.25-1) unstable; urgency=low
* strings.lisp: add new functions
Upstream Author: Kevin M. Rosenberg <kevin@rosenberg.net>
-Changes compared to upstream: none
-
Copyright (C) 2000-2002 by Kevin M. Rosenberg.
This code is free software; you can redistribute it and/or modify it
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: genutils.lisp,v 1.14 2003/01/13 21:40:20 kevin Exp $
+;;;; $Id: genutils.lisp,v 1.15 2003/02/07 14:21:55 kevin Exp $
;;;;
;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(format t ", time per iteration: ")
(print-seconds (coerce (/ secs ,n) 'double-float))))))))
+
+(defun nsubseq (sequence start &optional (end (length sequence)))
+ (make-array (- end start)
+ :element-type (array-element-type sequence)
+ :displaced-to sequence
+ :displaced-index-offset start))
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: package.lisp,v 1.19 2003/01/13 21:40:20 kevin Exp $
+;;;; $Id: package.lisp,v 1.20 2003/02/07 14:21:55 kevin Exp $
;;;;
;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
#:time-iterations
#:print-float-units
#:print-seconds
+ #:nsubseq
;; strings.lisp
#:string-append
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: strings.lisp,v 1.6 2003/01/13 21:40:20 kevin Exp $
+;;;; $Id: strings.lisp,v 1.7 2003/02/07 14:21:55 kevin Exp $
;;;;
;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
#-excl
(defun list-to-delimited-string (list &optional (separator #\space))
- (let ((output (when list (format nil "~A" (car list)))))
- (dolist (obj (rest list))
- (setq output (concatenate 'string output
- (format nil "~A" separator)
- (format nil "~A" obj))))
- output))
+ (if (consp list)
+ (let ((fmt (format nil "~~A~~{~A~~A~~}" separator)))
+ (format nil fmt (first list) (rest list)))
+ ""))
(defun string-invert (str)
"Invert case of a string"