首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在LISP中追加两个列表的第一个元素

如何在LISP中追加两个列表的第一个元素
EN

Stack Overflow用户
提问于 2021-02-17 20:22:28
回答 1查看 80关注 0票数 0

我对LISP非常陌生,我正在尝试使用2个列表并合并它们。

代码语言:javascript
复制
(define (append lst1 lst2)
        (if (null? lst1) lst2
            (cons (car lst1) (append (cdr lst2) lst2))))
(append '(1 2 3) '(4 5 6 7 8))

这会导致

(1 2 3 4 5 6 7 8)

其中我想要两个列表的第一个元素,如果为空,它将填充其他列表的其余元素。

(1 4 2 5 3 6 7 8)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-17 20:42:40

你已经很接近了。您需要在每次递归调用时切换列表输入的顺序,以便可以交替使用哪个元素作为结果列表。您还应该从

其他的东西,因为你并不是真的在做一个追加过程,而且这个名字有点误导:

代码语言:javascript
复制
(define (merge lst1 lst2)
  (if (null? lst1)
      lst2
      (cons (car lst1) (merge lst2 (cdr lst1)))))
代码语言:javascript
复制
> (merge '(1 2 3) '(4 5 6 7 8))
(1 4 2 5 3 6 7 8)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66241888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档