我正在编写一个函数,它添加了这样的括号:(parens '(a,b,c,d,e))返回(a (b (d (E)。我只是看得不太清楚。到目前为止,我所得到的只是返回一个包含每个元素括号的列表。我好像想不出怎么把它弄成那样。
(DEFUN PARENS (L)
(COND ((NULL L) NIL)
(T (CONS (LIST (CAR L)) (PARENS (CDR L))))))发布于 2014-03-14 01:33:58
实际上,您可以通过reduce和一些特殊的考虑来完成这一任务:
(defun unflatten (list)
(reduce #'list list
:from-end t
:end (1- (length list))
:initial-value (last list)))注意,last返回最后n(默认1)元素的列表。
https://stackoverflow.com/questions/22364888
复制相似问题