如何在方案中连接子列表?
How concatenate sublist in scheme?
例如列表'((1 2 3) (2 3 4) (4 5 6))
结果(1 2 3 2 3 4 4 5 6)
(
定义(连接列表 1 列表 2)
(if (null? list1)
list2
(
(concatenate (cdr list1) (append (car list1) '()) )
)
)
)
我的想法是 list1 = '((1 2 3) (2 3 4) (4 5 6)) 结果是 list2 = (1 2 3 2 3 4 4 5 6)
我们只需要一个列表参数,因为它已经是列表的列表,第二个参数用作累加器是没有用的。试试这个:
(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)
例如列表'((1 2 3) (2 3 4) (4 5 6)) 结果(1 2 3 2 3 4 4 5 6)
( 定义(连接列表 1 列表 2)
(if (null? list1)
list2
(
(concatenate (cdr list1) (append (car list1) '()) )
)
)
)
我的想法是 list1 = '((1 2 3) (2 3 4) (4 5 6)) 结果是 list2 = (1 2 3 2 3 4 4 5 6)
我们只需要一个列表参数,因为它已经是列表的列表,第二个参数用作累加器是没有用的。试试这个:
(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)