【发布时间】:2015-09-28 08:03:33
【问题描述】:
我想(或多或少)展平一个列表。输入由可能被引用的嵌套列表组成,我希望最后有一个全局变量列表。我检查first 是否以* 开头,但我最终得到一个包含quote 的列表。
编辑:
我必须处理的数据结构如下:
(defparameter *colors* '(*red* *green* *blue*))
(defparameter *animals* '(*mouse* *elephant*))
(defparameter *list-to-flatten* '('*colors*
'*animals*
*some-other-parameter*))
我已经创建了*red* 或*mouse* 这样的基本参数名称,因为原始数据中的名称不太理想,但我仍然不得不使用它们与系统交互。这些参数是列表,即*mouse* --> (animal mammal small 4),不会被展平。所以我编写了一个函数,将嵌套列表简化为这些基本参数的列表,并且该列表包含引号。
从那时起,我发现我最初获得的数据已经严重过时,我不得不重新开始。当前数据的参数名称命名要合理得多,所以我不再需要处理原来的问题了。
我看错了答案here。
【问题讨论】:
-
请给我们一些细节。你的输入是什么?预期的输出是多少?
*和它有什么关系?根据此处给出的描述(以及您的说法,另一个 SO 问题与您的问题无关),我很难理解您正在尝试做什么以及问题可能是什么。 -
你如何得到一个包含报价的列表?如果数据结构有一个名为
quote的符号,那么很明显生成的扁平列表将具有该符号。例如(flatten '(a b 'c)) ; ==> (a b quote c)没有错,因为数据评估中的第三个元素是(quote c),其中quote和c只是符号。
标签: common-lisp quote