在试图找到如何转换这样的列表时,我碰到了 Scheme streams and circular lists。但是,该答案要求在鸡场中没有提供Racket中的功能。任何人都可以指示我如何在Chicken方案中做到这一点?或者以一种方案变种中立的方式?在Chicken方案中将列表转换为循环列表?
3
A
回答
3
如果你能发生变异的名单,这里有一个标准的方法:
(define (make-circular lst)
; helper for finding the last pair in a list
(define (last-pair lst)
(if (null? (cdr lst))
lst
(last-pair (cdr lst))))
; special case: if the list is empty
(cond ((null? lst) '())
(else
; set the last pair to point to the head of the list
(set-cdr! (last-pair lst) lst)
lst)))
注意的是,以上将修改输入列表中。除此之外,它按预期工作:
(make-circular '(1 2 3 4 5))
=> #0=(1 2 3 4 5 . #0#)
(car (cdr (cdr (cdr (cdr (cdr (make-circular '(1 2 3 4 5))))))))
=> 1
2
当您使用SRFIs这是很简单的:
(使用SRFI-1) (定义L“(1 2 3 4)) (申请圆形列表l)
相关问题
- 1. 将循环转换为列表理解?
- 2. 将链接列表转换为循环列表
- 3. 尝试将链接列表转换为循环链接列表
- 4. 转换For循环While循环(列表)
- 5. 任何方式将此循环转换为列表理解?
- 6. 将列表转换为案例类
- 7. 转换的表情到列表方案
- 8. 将元素替换为列表方案
- 9. 转换键,值列表在循环
- 10. 将列表转换为foreach循环中的代理程序
- 11. 如何将for循环转换为Python中的理解列表?
- 12. 如何将矢量转换为方案中的列表
- 13. 在python中将列表和列表的列表转换为csv
- 14. 将列表转换为列表清单
- 15. 将列表转换为链接列表
- 16. 将列表从ord转换为列表
- 17. 将列表转换为字典列表
- 18. 将列表转换为一个列表
- 19. 将列表转换为整数列表
- 20. 将元组列表转换为列表?
- 21. 使用方案将元素插入到循环列表中
- 22. 将转换列表转换为水星中的元组列表
- 23. 将列表理解转换为Common Lisp循环
- 24. 将静态导航列表转换为WordPress的循环?
- 25. 试图将python嵌套循环转换为列表/ dict理解
- 26. 如何将这个循环转换为列表理解?
- 27. 如何将此Python for循环转换为列表理解?
- 28. 使用循环将scala列表转换为json
- 29. 将for循环转换为列表理解
- 30. 将列表理解转换为while循环
祝福你,奥斯卡。 –
@xuinkrbin。谢谢,永远是我的荣幸:) –