1
A
回答
1
你钉它,只是把它写一个程序:
(define (remover lst)
(cdr l))
而且使用这样的(这将创建一个新的绑定,并不是分配):
(let ((new-list (remover old-list)))
new-list)
或者像这样(这定义了一个新的列表):
(define new-list (remover old-list))
在任何情况下,请注意th在原始列表中作为参数传递给remover
将不会被修改,而是一个新列表将返回而不包含旧列表的第一个元素;这是在不可变链接列表上进行操作的方式,您绝对不应该认为列表中的任何修改都会在原地发生。
0
想想cdr
是做什么的。请记住,cdr
返回一个列表。你的答案很接近,你只需要根据Scheme语法和函数来思考它。
1
当心!
本身没有列表数据结构。所以你不能拿一个名单,l
,并删除l
的第一个元素。
你可以做什么,给定一个列表l
时,就是用cdr
以产生具有相同的元素l
一个新的名单呢,除了新的列表不成立的第一要素。
更详细一点:包含三个值1,2和3的列表被表示为(cons 1 (cons 2 (cons 3 '()))
。 让我们命名利弊细胞:
c3 = (cons 3 '())
c2 = (cons 2 c3)
l = c1 = (cons 1 c2)
要注意的第一件事情是,整个名单由值C1给出。 我们不能通过操作cons-cell c1从列表中删除数字1。 然而,我们可以很容易地找到一个人清单中移除的第一个元素,因为
c2 = (cons 2 c3) = (cons 2 (cons 3 '())
因此(cdr l) = (cdr c1) = c2
将产生一个新的清单中移除的第一个元素。
相关问题
- 1. 从阵列列表中删除项目
- 2. 从列表中删除项目不从RecyclerView中删除它们?
- 3. 从列表视图中删除项目
- 4. Python从列表中删除项目
- 5. 从列表框中删除项目
- 6. 从列表中删除项目jquery li
- 7. 从列表中删除项目Ionic
- 8. 从数组列表中删除项目
- 9. Android Firebase从列表中删除项目
- 10. 从列表中删除项目
- 11. Python - 从列表中删除项目
- 12. 从列表中删除项目?
- 13. 未从列表中删除的项目
- 14. 无法从列表中删除项目?
- 15. 从列表中删除项目RemoveAll
- 16. 从通用列表中删除项目
- 17. 从列表中删除项目
- 18. 从列表中删除一个项目
- 19. 如何从列表中删除项目
- 20. 从链接列表中删除项目
- 21. 如何从列表中删除项目?
- 22. Sharepoint REST - 从列表中删除项目
- 23. 从列表中删除项目
- 24. 从列表中删除项目
- 25. 未从列表中删除的项目
- 26. 项目不是从列表中删除
- 27. Diffculty从列表中删除项目
- 28. 从列表框中删除项目?
- 29. 从通用列表中删除项目
- 30. WPF从列表框中删除项目
你走在正确的轨道上,你只需要用正确的Scheme语法重新构思你的想法。 –
我可以通过做 (let list(cdr list))来实现吗? – Ceelos
不完全是,'let'形式不是赋值,而是从'let'形式开始到结尾存在的名称的新绑定。 –