В Racket для этого есть процедура, она называется string-join
:
(string-join '("cat" "is" "hungry"))
=> "cat is hungry"
Вот еще одна альтернатива, использующая string-append
. Это менее эффективно, но позволяет избежать явной рекурсии:
(define (join lst)
(foldl (lambda (s acc) (string-append acc " " s))
(first lst)
(rest lst)))
(join '("cat" "is" "hungry"))
=> "cat is hungry"
Используйте string-append*
См. https://docs.racket-lang.org/reference/strings.html?q=string-append*#%28def._%28%28lib._racket%2Fstring..rkt%29._string-append%2A%29%29