As plain r5rs is lacking in useful string processing utilities, such as string-split and string-join (I'm using MIT/GNU Scheme), I decided to implement my own.  My procedure, string-join, works just fine, but I would like my code to be critiqued by seasoned Schemers, and also find out if there are other, more efficient ways to implement the same thing.(define string-join  (lambda (ls delim)  (define out (open-output-string))    Join list of strings together by delim into one string.    (let loop ((ls ls))      (if (null? (cdr ls))          (begin            (display (car ls) out)            (get-output-string out))          (begin            (display (car ls) out)            (display delim out)            (loop (cdr ls)))))))
String Concatenation in Scheme
strings;reinventing the wheel;scheme