(defun join-strings (list) (let* ((length (reduce #'+ list :key #'length)) (result (make-string length))) (loop for string in list for start = 0 then end for end = (+ start (length string)) while string do (replace result string :start1 start :end1 end) finally (return result))))Source Context