我需要一个将多个值连接成(简单)向量的函数,类似于(concatenate )
. 但是,与连接不同,它应该能够处理不是向量或序列的参数。
即它应该像这样工作:
(concat #(1 2) 3) => #(1 2 3)
(concat 1 2 3) => #(1 2 3)
(concat 1 #(2 3 4)) => #(1 2 3 4)
(concat #(1 2) 2 #(3 4 5)) => #(1 2 3 4 5)
我怎样才能做到这一点?我想我已经忘记了一些使它成为可能的微不足道的 lisp 结构。
据我所知,连接不能做到这一点。而且我不太确定如何将它与宏一起使用(有,@
将列表插入结果lisp形式的构造,但我不太确定在这种情况下如何区分非序列和序列)。