【问题标题】:How concatenate sublist in scheme?如何在方案中连接子列表?
【发布时间】:2016-10-28 23:58:27
【问题描述】:

例如列表'((1 2 3) (2 3 4) (4 5 6)) 结果(1 2 3 2 3 4 4 5 6)

( 定义(连接list1 list2)

(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)

【问题讨论】:

    标签: list scheme concatenation sublist


    【解决方案1】:

    我们只需要一个列表参数,因为它已经是一个列表列表,并且没有必要将第二个参数用作累加器。试试这个:

    (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)
    

    【讨论】:

    • 完美,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2023-03-22
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多