1
A
回答
1
这类问题的一般方法是解决第一个元素的问题,然后为其余的问题进行递归。如果你解决这个问题:
(zip '(2) '(1))
那么递归看起来像这样(与终止条件表示在前):
(define (zip list1 list2)
(cond ((null? list1) list2)
((null? list2) list1)
(else (cons (car list1)
(cons (car list2)
(zip (cdr list1) (cdr list2)))))))
> (zip '(a b c) '(1))
(a 1 b c)
> (zip '(a b c) '(1 2 3))
(a 1 b 2 c 3)
> (zip '(a) '(1 2 3))
(a 1 2 3)
注意两个null?
条款。这允许list1
或list2
是不同的大小;最后会留下什么。
1
如果你正在寻找学习电池包括球拍方面:
#lang racket
(define (intertwine L1 L2)
(flatten (map cons L1 L2)))
快速测试。
> (intertwine '(2 4 6) '(1 3 5))
'(2 1 4 3 6 5)
注意作品在同等大小的名单的情况下,每提出的问题。不会像@ GoZoner的答案那样处理长度差异。
重新实现函数是练习小规模编程的好方法。学习图书馆将会提高生产力和更简洁的代码。恕我直言
相关问题
- 1. 有两个列表
- 2. 从两个列表
- 3. 在两个列表
- 4. 列表除了和union两个列表
- 5. 循环两个列表的列表
- 6. 将列表划分为两个列表
- 7. 分离列表分成两个列表
- 8. Python-将两个列表组合成一个列表列表
- 9. Python的 - 在两个列表
- 10. 两个列表组合
- 11. 比较两个列表
- 12. 比较两个列表C#
- 13. 使用两个列表
- 14. 序言 - 两个列表但
- 15. 的Perl:在两个列表
- 16. 比较两个列表
- 17. 如何从两个列表
- 18. Groovy合并两个列表?
- 19. 配对两个列表
- 20. 交换两个列表
- 21. 合并两个列表
- 22. 两个数组列表
- 23. Python:乘两个列表
- 24. 两个列表的补充?
- 25. 邮编两个列表
- 26. 两个选择与表列
- 27. 比较两个列表?
- 28. 区别两个列表
- 29. 找到两个列表
- 30. 合并两个列表
你到目前为止尝试过什么?发布你的代码!堆栈溢出是不是让你的功课做的地方免费 – 2013-05-07 20:10:00
(定义(名酒列表1列表2) (如果[(空?列表1)空] (利弊第一列表1 (名酒??? (入住希望( (2 4 6)'(1 3 5))'(2 1 4 3 6 5)) – user2359807 2013-05-07 20:33:26
这不是家庭作业,只是我自己的学习计划 – user2359807 2013-05-07 20:40:37