构建重复字符串,重复之间有空格

时间:2013-02-24 00:49:20

标签: scheme racket

repeat接收一个数字和一个字符串,并返回重复n次的字符串,用空格分隔。

;; repeat: number string -> string
(define (repeat n str)
  (replicate n str))

(repeat 2 "home")

给了我:

"homehome"

我如何添加一个空间,以便它可以给我“回家”?

2 个答案:

答案 0 :(得分:2)

在将字符str传递给replicate之前,在结尾添加一个空格{/ 1}}:

(replicate n (string-append str " "))

如果你想摆脱它,那将会留下一个额外的空间,就像@Tobia建议的那样:

(string-trim (replicate n (string-append str " ")))

答案 1 :(得分:1)

Racket有一个内置函数 string-join ,所以在普通的Racket中这将是

> (string-join (build-list 2 (lambda (i) "home")))
"home home"