我试图编写一个带有短语和数字(n)的程序,并返回一个包含重复n次的短语的列表。 到目前为止我看到的是这样,但它显然只重复了两次这个短语:
(define (duplicate num phrase)
(list phrase phrase))
所需输入/输出的示例 :(重复3' Hello)生成'(Hello Hello Hello)。有没有办法做到这一点递归?
感谢先进的任何帮助!!
答案 0 :(得分:0)
您想要的功能正是make-list
:
> (make-list 3 'Hello)
'(Hello Hello Hello)
但是既然你要求一个递归函数,你可以用标准方式写出一个。
(define (duplicate num phrase)
(cond
[(zero? num) empty]
[else (cons phrase (duplicate (sub1 num) phrase))]))
你还用for-loop标记了这个,所以这是一个使用for/list
的版本。
(define (duplicate num phrase)
(for/list ([num num])
phrase))