首页 > 解决方案 > 如何在 Racket 中表示无穷大?

问题描述

我正在编写一个程序,该程序需要在我的代码中以某种方式表示正无穷大。Racket 中有类似 INTEGER_MAX 的东西吗?

标签: schemeracketinfinity

解决方案


#lang racketRacket 语言家族中和其他语言中,您具有浮点支持,因此您具有两个无穷大:

+inf.0
-inf.0

这也适用于 Racket 提供的标准 Scheme 报告语言实现,例如#!r5rs#!r6rs.

至于 Scheme 标准,只需要 R6RS 即可支持完整的数字塔。最新的R7RS-small 报告(pdf,第 35 页) 指出:

正无穷大、负无穷大和NaN 分别写成 +inf.0和。NaN 也可以写成。在书面表示中使用符号不一定反映 NaN 值的潜在符号(如果有)。实现不需要支持这些数字,但如果支持,它们必须在总体上符合 IEEE 754。但是,实现不需要支持信令 NaN,也不需要提供区分不同 NaN 的方法.-inf.0+nan.0-nan.0

因此,立场与 R5RS 相同。尚未完成的较大 R7RS 可能需要一个完整的数字塔,因为它似乎一直在争论。


推荐阅读