2012-10-30 83 views

回答

8

+的实现实际上比您预期的要复杂得多,因为算术在Racket中是通用的:它适用于整数,有理数,复数等等。你甚至可以混合和匹配这些类型的数字,它会做正确的事情。最后,它最终将在C,这是什么样的运行系统是写在使用算术

如果你好奇,你可以找到更多的数字塔在这里的胆:https://github.com/plt/racket/blob/master/src/racket/src/numarith.c

其他指针:Bignum arithmetic,方案numeric tower,球拍参考numbers

+0

+1用于参考代码 – Eineki

6

+运算符是原语操作,是核心语言的一部分。出于效率的原因,将它作为递归过程来实现是没有多大意义的。