(define (combine-syms lst) (let loop ((l lst) (res '())) (cond ((null? l) (string-intersperse (reverse res))) ((not (list? (car l))) (loop (cdr l) (cons (->string (car l)) res))) ((every (lambda (e) (not (number? e))) (car l)) (loop (cdr l) (append (map ->string (car l)) res))) (else (cons (string-intersperse (reverse res)) l)))))