例如,如果您尝试(+ 3 4)
,它是如何在源代码中进行细分和计算的,具体如何?它是否使用add1
递归?添加如何在球拍/方案中工作?
3
A
回答
8
+
的实现实际上比您预期的要复杂得多,因为算术在Racket中是通用的:它适用于整数,有理数,复数等等。你甚至可以混合和匹配这些类型的数字,它会做正确的事情。最后,它最终将在C,这是什么样的运行系统是写在使用算术
如果你好奇,你可以找到更多的数字塔在这里的胆:https://github.com/plt/racket/blob/master/src/racket/src/numarith.c
其他指针:Bignum arithmetic,方案numeric tower,球拍参考numbers。
6
+
运算符是原语操作,是核心语言的一部分。出于效率的原因,将它作为递归过程来实现是没有多大意义的。
相关问题
- 1. 覆盖在方案(球拍)
- 2. 如何获得最新方案/球拍?
- 3. 球拍/方案列表操作
- 4. 在方案球拍中乘以Big-int
- 5. 方案(球拍) - 循环库
- 6. 球拍/方案过滤
- 7. 方案/球拍:倍布尔
- 8. 球拍VS方案宏
- 9. 球拍/方案:与结构
- 10. eq如何?在球拍工作?
- 11. 球拍/方案中的zip函数
- 12. 方案:球拍中的循环功能
- 13. printf%6.2f在方案或球拍?
- 14. 如何检索球拍/ PLT方案中的按钮标签?
- 15. 方案/球拍:不做评价
- 16. 包含球拍/方案内的文件
- 17. 方案/球拍:可扩展功能
- 18. 球拍/方案C++扩展和继承
- 19. 二叉树中的方案/球拍操作(+, - ,*,/)
- 20. 如何在球拍中添加一个数字到字符串?
- 21. VIM的编程方案(球拍) - 如何开始
- 22. 如何使用球拍/方案建立滚动窗口程序?
- 23. emacs方案球拍自动重新加载文件
- 24. 在球拍/方案中的语言嵌套循环
- 25. 运营商在球拍/方案中重载
- 26. 球拍/方案在现有列表中嵌入列表
- 27. 检测方案或球拍中功能的主叫方
- 28. 如何在球拍(方案)中将列表拆分成均匀大小的块?
- 29. 解释球拍中的图案匹配?
- 30. 如何获得在球拍
+1用于参考代码 – Eineki