【发布时间】:2020-06-24 08:19:53
【问题描述】:
(defun ppl (list)
(loop for x in list
collect (cons x '(ppl))))
(ppl '(1 2 3))
=> ((1 ppl) (2 ppl) (3 ppl))
虽然还在ppl里面,但是如何去掉括号让结果变成
=> (1 ppl 2 ppl 3 ppl)
我了解我的代码从根本上创建了一个子列表列表。可以使用一些帮助来扁平化列表。也许如果我能以某种方式获得收集返回的列表?
【问题讨论】:
-
这与“删除括号”无关。括号只是列表的外部文本表示中的一个东西。该操作称为“展平”。它接受一个嵌套列表并返回一个带有平面列表的新列表,其中包含原始列表的所有原子。
标签: list common-lisp flatten