小编law*_*313的帖子

连接Common Lisp中的两个列表

我将自己设置为编写Common Lisp函数的任务,该函数将两个列表连接在一起而不使用append

通用Lisp输入(concat-lists '(1 2 3) '(4 5 6))应返回(1 2 3 4 5 6)

即使我的解决方案似乎可行,它看起来也很复杂

(defun concat-lists(seq1 seq2)
    (cond ((not (null seq1)) (cons (car seq1) (concat-lists (cdr seq1) seq2)))
          (T (cond ((not (null seq2)) (cons (car seq2) (concat-lists seq1 (cdr seq2))))
                   (T nil)))))
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种更优雅的解决方案reduce,该方法使用将我 seq1用作初始值的位置,然后将函数应用于的每个元素seq2,从而将列表的每个值附加到seq1。尝试时总会卡住我...

任何帮助或投入,我们将不胜感激。谢谢!

lisp common-lisp

3
推荐指数
2
解决办法
1535
查看次数

标签 统计

common-lisp ×1

lisp ×1