残りを引数。基本的には残りの引数はリストに収められています。
残りの引数の反対は、要素が関数の余分な引数であるかのように最後の引数としてリストを取るプロシージャです。 1つのジェネリックはapply
として存在します。あなたは10要素のリストを持っている場合
(define (double-list . e)
(if (null? e)
'()
(list* (car e)
(car e)
(apply helper (cdr e)))))
は、しかし、あなたは唯一の引数として渡される前にしばらく住んでサイズを小さくする10本のリストを作ってしまいます。最初のリストを維持する方が良いだろうと1ヘルパーでこれを行うことができます:
(define (double-list . e)
(define (helper e)
(if (null? e)
'()
(list* (car e)
(car e)
(helper (cdr e)))))
(helper e))
ヘルパーは単に最初の作成したリストを繰り返し処理の代わりに、それぞれの新しいリストを作成するので、それは同じ動作しますが、あまり使用メモリを搭載しました繰り返し。
'(func(cdr lst)条件を適用する)'を使用します。 –