>>3
Some library had a join, but I can't remember its name. It's also possible to do with FORMAT. You're also right about SPLIT-SEQUENCE, although you can use CL-PPCRE to split by regular expression.
My implementation of string-join (works the same as your example):
(defun mappend (fn list
&rest otherlists
&aux (list (copy-list list)) (otherlists (copy-list otherlists)))
(apply #'mapcan fn list otherlists))