# HG changeset patch # User Steve Losh # Date 1639527021 18000 # Node ID 656f2f6975bcaecdcdd0efba6ee8fbec8fe96738 # Parent 7a3907583b2d01ed320c59f12377c6fff41d5828 Fix separator in `concatenating` iterate macro diff -r 7a3907583b2d -r 656f2f6975bc src/iterate.lisp --- a/src/iterate.lisp Tue Dec 14 19:09:58 2021 -0500 +++ b/src/iterate.lisp Tue Dec 14 19:10:21 2021 -0500 @@ -709,9 +709,11 @@ " (if var - (let ((sep (gensym "SEP"))) + (let ((separator% (gensym "SEPARATOR")) + (sep (gensym "SEP"))) `(progn - (with ,sep = ,(if separator (string separator) "")) + (with ,separator% = ,separator) + (with ,sep = (if ,separator% (string ,separator%) "")) (reducing ,expr :by (lambda (a b) (if (null a) @@ -719,11 +721,15 @@ (concatenate 'string a ,sep b))) :into ,var :initial-value nil))) - (let ((sos (gensym "SOS")) + (let ((separator% (gensym "SEPARATOR")) + (sos (gensym "SOS")) (sep (gensym "SEP"))) `(progn + (with ,separator% = ,separator) (with ,sos = nil) - (with ,sep = ,(if separator (string separator) nil)) + (with ,sep = (if (or (null ,separator%) (equal ,separator% "")) + nil + (string ,separator%))) (if (null ,sos) (setf ,sos (make-string-output-stream)) (when ,sep