如何编写一个函数,它具有两个列表的参数并返回两个列表的连接,而不使用 append。
我知道如何获得第二个列表的头部,但我不知道如何将它放在第一个列表中,如果列表的头部也是一个列表,我该怎么办。
如何编写一个函数,它具有两个列表的参数并返回两个列表的连接,而不使用 append。
我知道如何获得第二个列表的头部,但我不知道如何将它放在第一个列表中,如果列表的头部也是一个列表,我该怎么办。
如果我不得不这样做而不使用APPEND
(无论出于何种原因),那么我可能会这样做:
(concatenate 'list list1 list2)
CONCATENATE
虽然我觉得这可能是一个家庭作业问题,而且这可能不是您正在寻找的答案,但您可以在HyperSpec中找到更多信息。
是否允许使用 LOOP 或 DO?
像这样的东西会起作用:
(defun my-concat (x y)
(loop
for o in (reverse x)
do (push o y)
finally (return y)))
如果循环不是一个选项,您可能想要使用递归。