2016-10-28 3 views
0

リスト「((1 2 3)(2 3)(4 5 6)) 結果(1 2 3 2 3 4 4 5 6)スキーム内のサブリストを連結する方法は?例えば

( CONCATENATE LIST1 LIST2(定義)

(if (null? list1) 
    list2 
(
(concatenate (cdr list1) (append (car list1) '())) 
) 
) 

私の考えは、LIST1 =「((1 2 3)(2 3)(4 5 6))、その結果であるLIST2 =(1 2 3 2 3 4 4 5 6 )

答えて

0

既にリストのリストであることを前提に、リストパラメータが1つだけ必要です。 rはアキュムレータとして使用される第2のパラメータである。試してみてください:

(define (concatenate lsts) 
    (apply append lsts)) 

(concatenate '((1 2 3) (2 3 4) (4 5 6))) 
=> '(1 2 3 2 3 4 4 5 6) 
+0

パーフェクト、ありがとうございます。 – Jason