2017-04-05 40 views
-3

我正在嘗試編寫一個程序,它接受一個短語和一個數字(n)並返回一個包含重複n次短語的列表。 什麼我迄今爲止看起來像這樣,但是它清楚地僅重複兩次短語:所需的輸入/輸出的在拍子中複製特定次數的東西

(define (duplicate num phrase) 
    (list phrase phrase)) 

實施例:(重複3「你好)產生」(你好你好你好)。有沒有辦法做到這一點遞歸

感謝在先進的任何幫助!

回答

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)) 
+0

非常感謝所有不同的版本!這非常有幫助! – Vic