【发布时间】:2019-08-01 23:57:05
【问题描述】:
我还在学习 Scheme。
如果有这两个列表:
'((1 2 (3 4) 5) (12 13 4))
'((3 4 9) (7 6 5 4))
我想得到这个列表:
'((1 2 (3 4) 5) (12 13 4) (3 4 9) (7 6 5 4))
但是cons:
(cons '((1 2 (3 4) 5) (12 13 4)) '((3 4 9) (7 6 5 4)))
我得到了这份清单:
'(((1 2 (3 4) 5) (12 13 4)) (3 4 9) (7 6 5 4))
注意:
在此示例中,两个列表都有两个子列表。但它们可以有 n 个子列表。
我已尝试使用append,但当列表列表之一只是一个列表时它不起作用:
(append '(1 2 3 4) '((23 24 25 26) (a b c)))
> '(1 2 3 4 (23 24 25 26) (a b c))
是否有一个功能可以做到,或者我必须实现它?
【问题讨论】:
-
当列表中的一个列表只是一个列表时,“
append不起作用”是什么意思?append的行为不依赖于列表的元素。(append '((1 2 (3 4) 5) (12 13 4)) '((3 4 9) (7 6 5 4)))产生预期的'((1 2 (3 4) 5) (12 13 4) (3 4 9) (7 6 5 4)) -
看那段下面的代码。
-
@VansFannel 如果你不喜欢
'(1 2 3 4 (23 24 25 26) (a b c)),那么你应该定义你想要的。 -
Using car and cdr的可能重复
标签: functional-programming scheme