【问题标题】:How does addition work in racket/scheme?球拍/方案中的加法如何工作?
【发布时间】:2012-10-30 21:51:43
【问题描述】:

例如,如果您尝试(+ 3 4),具体是如何在源中分解和计算的?它是否使用add1 的递归?

【问题讨论】:

    标签: scheme racket


    【解决方案1】:

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

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

    其他指针:Bignum arithmetic、Scheme numeric towernumbers 上的 Racket 引用。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2013-03-03
        • 2017-09-28
        • 1970-01-01
        • 2022-07-27
        • 1970-01-01
        相关资源
        最近更新 更多