【发布时间】:2023-03-28 18:32:01
【问题描述】:
我有一个函数应该接受任何列表,然后像这样打印它(例如):
输入列表:(A B C)
输出:(A B C) (A) (B) (C)
那是原始列表后面跟着每个元素在它自己的列表中。函数应该写成递归函数。
我有以下伪代码,我无法正确处理,无法转换为递归:
Assuming input (A B C)
Function input (list)
Cons newlist '(list) //newlist = (A B C)
newlist append (car list) //car returns A
pop list//remove firstElement
newlist append (car list)//car returns B
Pop list
newlist append (car list)//car returns C
pop list
Print newlist.
这里的问题是,使用 Append,我会得到 (A B C A B C)。有没有其他方法可以将它分成各自的括号并递归?
【问题讨论】:
-
@kuroineko 这还有帮助吗?
-
你想要的输出是什么?
(A B C (A) (B) (C))或((A B C) (A) (B) (C))? -
@LePetitPrince 第二个
-
请记住在以后的问题中添加
common-lisp标签。
标签: lisp common-lisp