2017-04-05 13 views
-3

私はフレーズと数字(n)を取り、そのフレーズがn回繰り返されたリストを返すプログラムを作成しようとしています。所望の入力/出力のラケットで特定の回数だけ重複する

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

例:(3複製(こんにちはこんにちはこんにちは)「ハロー)を生成し」私はこれまでのように見えますが、それは明らかに二回しかフレーズを繰り返してきた何 。これを行う方法はありますか再帰的に

アドバイスをいただきありがとうございます!

> (make-list 3 'Hello) 
'(Hello Hello Hello) 

しかし、あなたは再帰関数を求めているので、あなたは、標準的な方法で1つのアウトを書き込むことができます。

答えて

0

したい機能が正確にmake-listです。

(define (duplicate num phrase) 
    (cond 
    [(zero? num) empty] 
    [else (cons phrase (duplicate (sub1 num) phrase))])) 

また、forループでこれをタグ付けされたので、ここでfor/listを使用したバージョンです。

(define (duplicate num phrase) 
    (for/list ([num num]) 
    phrase)) 
+0

すべてのバージョンがありがとうございました!それはとても役立ちます! – Vic

関連する問題