【发布时间】:2017-11-26 11:54:56
【问题描述】:
如何将(1 2 3) 附加到() 的末尾以生成((1 2 3))
我如何将(4 5 6) 附加到 that 的末尾以生成((1 2 3) (4 5 6))
我如何将"|" 附加到 that 的末尾以使((1 2 3) (4 5 6) "|")
没有点对。
我正在与 Chicken Scheme 合作,但此时我会从任何方案中得到答案。请注意,这些列表中的任何一个也可以是谁知道什么的嵌套列表......我只是在写一个简单的例子。
注意:@sjamaan 展示了 a 使用 append 的解决方案,该解决方案涉及将所有内容包装在另一个列表中,以弥补名称之外的附加操作。
(append (list 1 2 3) "|" ) ;=> (1 2 3 . "|")
;^^ didn't actually append, created a dotted pair
(append '(1 2 3) (list 4 5 6)) ;=> (1 2 3 4 5 6) ; don't want unwrapped list
;^^ didn't actually append the list i gave it but appended the contents of the list.
基本上,我希望有一个 append 方法,它实际上是附加你给它的东西,而不是附加它的内容,或者接受它并形成一个点对。也许我只是一个梦想家......我可以编写一个“没有真正附加”的方法,它只需要你给它的任何参数并将它们包装在一个外部列表中以进行补偿,但这只是愚蠢......当然方案有一些方法可以没有这种疯狂的追加。
【问题讨论】:
-
@jcolemang 它相似但不一样。另一个问题相当模棱两可,并没有涵盖相同的领域。它及其答案未能解决附加列表不是附加列表而是附加内容的事实,并且没有解决附加单个项目的问题。
标签: scheme chicken-scheme