List 在lisp中追加列表
在lisp中,我将列表附加为: (setq newlist(附加(a侧b)(该a侧b)(该a侧b))) 这会将所有必需的列表追加为:(1 0 0 2 0 4 0 6 0) 但我想要的是这样的:((10)(00)(20)(40)(60))List 在lisp中追加列表,list,recursion,append,lisp,List,Recursion,Append,Lisp,在lisp中,我将列表附加为: (setq newlist(附加(a侧b)(该a侧b)(该a侧b))) 这会将所有必需的列表追加为:(1 0 0 2 0 4 0 6 0) 但我想要的是这样的:((10)(00)(20)(40)(60)) 我应该如何获得所需的格式。请在lisp中发布代码示例。因此,实际上,您只需在添加元素后重新构造元素: (loop :for (e1 e2) :on '(1 0 0 0 2 0 4 0 6 0) :by #'cddr :c
我应该如何获得所需的格式。请在lisp中发布代码示例。因此,实际上,您只需在添加元素后重新构造元素:
(loop :for (e1 e2)
:on '(1 0 0 0 2 0 4 0 6 0)
:by #'cddr
:collect (list e1 e2))
; ==> ((1 0) (0 0) (2 0) (4 0) (6 0))
建议阅读的内容是,我在这里使用的部分是“循环集合和包”和“解构变量”。这可能是我读得最多的一章。整本书都很好,所以每一个lisper都应该知道它。什么是
方面
,这个
,那个
?它似乎不是你要找的附件。也许(list'(side a b)'(this a b)'(that a b))
?@sds side,this and that是其他三个包含列表的函数。Like边包含:(1000),this包含:(0020)that包含:(40060)。当我附加它们时,我得到的是(100 0 0 0 0 2 0 4 0 6 0),但我需要的是((10)(0)(0)(2 0)(4 0)(6 0))@sylvester(列表)(a b边);(a b边);(a b边)给出列表中相同元素的集合,(列表(a b边)(a b边)(a b边)(a b边))给出类似的东西:((10)(0 0 0 3)(0 4 0)),但我需要的是((1 0)(0 0 0)(0 3)(0 0)(4 0))。函数不“包含”列表。它们可能会返回这些列表。请编辑您的问题,将我们要求的其他信息包含在评论中。感谢您的回复。:)