说我有这个清单
'((c d) (4 6) (m n) (z z))
如何对每个内部列表的第一个和最后一个元素进行分组并将其追加到末尾,以便我的输出结果如下:
(c 4 m z z n 6 d)
任何帮助将不胜感激!
答案 0 :(得分:1)
这是Clojure中的一种方式(这是一种lisp方言):
user=> (def l '((c d) (4 6) (m n) (z z)) )
user=> (concat (map first l) (reverse (map second l)))
(c 4 m z z n 6 d)
真正取决于您的问题,哪种实施最适合。
答案 1 :(得分:0)
您需要从两端构建列表。我建议如下:
所以你应该期望函数调用看起来像:
(myFunc inputList forwardList willBeBackwardList)
当inputList
为空时,您想要执行类似
(append forwardList (reverse willBeBackwardList))
(确切的内置函数名称会因您使用的lisp而异。)