Common lisp 如何在common lisp中生成空序列?

Common lisp 如何在common lisp中生成空序列?,common-lisp,Common Lisp,函数以序列作为参数。在函数中,我想为相同类型的参数创建一个空序列。然后我将存储一些内容并返回它,以便返回类型与参数相同。但是 (如果参数是某个长度的任何列表或向量,则生成序列(参数类型)0)将导致错误 我目前的解决办法是: 1.使用空列表来存储东西,我们称之为临时列表 2.(制造顺序(参数类型)(长度临时列表)) 3.复制元素,然后返回 其他更好的解决方案?它看起来失败了,因为列表的类型是CONS,而不是list,并且向量的类型有它的大小,您正试图覆盖它 您可以通过一些简单的规则来转换的类型,如

函数以序列作为参数。在函数中,我想为相同类型的参数创建一个空序列。然后我将存储一些内容并返回它,以便返回类型与参数相同。但是

(如果参数是某个长度的任何列表或向量,则生成序列(参数类型)0)将导致错误

我目前的解决办法是: 1.使用空列表来存储东西,我们称之为临时列表 2.(制造顺序(参数类型)(长度临时列表)) 3.复制元素,然后返回


其他更好的解决方案?

它看起来失败了,因为列表的类型是CONS,而不是list,并且向量的类型有它的大小,您正试图覆盖它

您可以通过一些简单的规则来转换的类型,如:

(cond ((eq x 'cons) 'list)
      ((consp x) (car x))))

但PUSH对向量不起作用,所以我不确定你们想在那个里做什么:你们需要一个列表来考虑,然后再转换,对吗?

看起来它失败了,因为列表的类型是CONS,而不是list,向量的类型有它的大小,你们试图覆盖它

您可以通过一些简单的规则来转换的类型,如:

(cond ((eq x 'cons) 'list)
      ((consp x) (car x))))

但是PUSH对向量不起作用,所以我不确定你想在那里做什么:你需要一个列表来考虑,然后转换,对吗?

返回一个相同类型的空序列

(subseq sequence 0 0)

返回相同类型的空序列

(subseq sequence 0 0)

听起来有点困惑,你不能使用序列推送-尽管是列表。也许你需要向我们展示你的代码???听起来有点混乱,你不能使用序列推送-尽管是列表。也许你需要向我们展示你的代码???哦,是的,推送与向量机的工作不同于列表。谢谢但是还有其他函数可以将东西存储在向量中。雷纳的答案满足了需求。哦,是的,推动向量机的工作与列表不同。谢谢但还有其他函数可以存储向量中的内容。雷纳的回答满足了需要。