【发布时间】:2011-10-04 18:04:09
【问题描述】:
cons 目前的行为如下:
(cons '(1 2) '(3))
;=> ((1 2) 3)
我想实现:
(magic-cons '(1 2) '(3))
;=> (1 2 3)
我找不到这方面的资源,但这似乎很简单,我觉得应该有一个内置函数。
或者我只是不知道描述这种情况的文字。无论哪种方式,请让我知道。谢谢!
编辑: 请不要用“扁平化”回答:P ie
(flatten (cons '(1 2) '(3)))
【问题讨论】:
-
只是为了让你更好地理解
cons。cons代表“构造”。它构造列表,将新元素一一添加到列表的开头。您正在寻找的函数类型应该将一个列表的所有元素附加到另一个列表中,或者只是连接 2 个列表。因此,在 Common Lisp 中,它被称为append,而在 Clojure 中,正如其他人已经在这里提到的那样 -concat。