Updated join function in utils.lisp
authormaxwellhansen <maxwellhansen@hotmail.com>
Fri, 26 Apr 2013 05:37:09 +0000 (22:37 -0700)
committermaxwellhansen <maxwellhansen@hotmail.com>
Fri, 26 Apr 2013 05:37:09 +0000 (22:37 -0700)
Used !reduce instead of verbose conditional recursion.

src/utils.lisp

index 3cf0103..5a66bf6 100644 (file)
 
 ;;; Concatenate a list of strings, with a separator
 (defun join (list &optional (separator ""))
-  (cond
-    ((null list)
-     "")
-    ((null (cdr list))
-     (car list))
-    (t
-     (concat (car list)
-             separator
-             (join (cdr list) separator)))))
+  (!reduce (lambda (s o) (concat s separator o))  
+           (cdr list) 
+           :initial-value (car list))) 
 
 (defun join-trailing (list &optional (separator ""))
   (if (null list)