我试图在方案中模拟堆栈。我正在使用DrScheme,并选择了R5RS语言。我需要创建弹出,推送和查看功能。但我无法弄清楚如何通过引用传递。我已阅读了一些有关框的信息,但R5RS不支持它们。有没有其他方法可以通过引用传递?方案R5RS:通过引用
3
A
回答
0
计划鼓励您从功能意义上思考,而不是通过“通过引用”,这是您可能在命令式语言中做的事情。这意味着你的push
操作,例如,将采取两个参数:
- 堆栈
- 一个新的元素
和回包含新的元素,结合新的堆栈现有堆栈的其余部分。同样,pop
操作会堆叠并返回一个顶部元素消失,peek
将返回顶部元素的值。
事实证明,Scheme中的列表几乎完全像栈一样工作。下面的映射将帮助您开始:
- 推 - 利弊
- 流行 - 休息
- 偷看 - 第一
1
简短的回答:不使用R5RS;只使用母语。在当前版本的DrRacket中,该语言被称为“球拍”。下面是一个使用盒的程序:
#lang racket
(define b (box 234))
(set-box! b 333)
(unbox b)
FWIW:格雷格的答案是更纯粹的比我的功能,但它是一个错误的认为,可变结构不DrRacket(NEE DrScheme)可用。
最后终于,你滥用术语“引用通话”。盒子只是可变结构,而按值语言(比如racket,r5rs,java等)可以很好地改变这些结构。
相关问题
- 1. 使用R5RS方案在文件中写新行
- 2. 通过引用传递密钥和值的替代方案:
- 3. Obj-C:通过引用的替代方案
- 4. 通过方案登录
- 5. DrRacket,R5RS和错误过程
- 6. 通过REST API设置方案通过REST API调用
- 7. 通过引用变量调用方法
- 8. 通过URL方案访问TomTom导航解决方案
- 9. 通过引用
- 10. 通过引用
- 11. 通过引用
- 12. 通过引用
- 13. 如何通过4在方案
- 14. 通过参数的方案递归
- 15. 方案将不会通过bat文件
- 16. 通过遍历一棵树方案
- 17. C#通过变量引用方法?
- 18. Perl方法和通过引用
- 19. 通过引用(Suduko)
- 20. PHP通过引用
- 21. c + +通过引用
- 22. CComPtr通过引用
- 23. 通过引用(C++)
- 24. PHP中未定义的索引。通用解决方案需要
- 25. C++通过Const引用并通过Const返回引用
- 26. R6RS vs. R5RS计划
- 27. 管理解决方案/引用
- 28. 对unique_ptr的引用的替代方案
- 29. 引用C++而不通过引用
- 30. 取消引用,并通过引用
我需要弹出不仅仅是删除顶部元素并返回列表。弹出功能必须返回顶部元素,同时也从列表中删除它。所以我不能返回列表,因为我必须返回顶部元素。 – Crbreingan 2010-12-04 21:15:20