Scheme言語でコードを作成しようとしています。リストを入力して最初の要素が1回繰り返され、2番目の要素が2回繰り返されるリストの文字列表現を返したい時間および第三の要素はScheme言語で文字列リストを繰り返す
入力のような三回繰り返す=>(CDG) 出力私はすべての要素を複製してコードを書い=>(cddggg)
あります。ループを使用して、すべての要素を最初から最後まで1からn回繰り返す必要があります(nはリストのサイズです)。しかし、私は方法がわかりません。
(define repeat
(lambda (d)
(cond [(null? d) '()]
[(not (pair? (car d)))
(cons (car d)
(cons (car d)
(repeat (cdr d))))]
[else (cons (repeat (car d))
(repeat (cdr d)))])))
(repeat '(a b c d e)) => aa bb cc dd ee
(define size
(lambda (n)
(if (null? n)
0
(+ 1 (size (cdr n))))))
(size '(A B C D)) => 4
出力は ''(c d d g g g) ''でなければならないということは、 ''(c d d g g g) 'の文字列表現なのですから? http://idownvotedbecau.se/nocode/ – Sylwester
N番目の要素をN回繰り返すという「実際の」問題について、何を試しましたか?すべての要素を2回繰り返す代わりに。 –