scheme - 如何在 Racket 中表示无穷大?
问题描述
我正在编写一个程序,该程序需要在我的代码中以某种方式表示正无穷大。Racket 中有类似 INTEGER_MAX 的东西吗?
解决方案
在#lang racket
Racket 语言家族中和其他语言中,您具有浮点支持,因此您具有两个无穷大:
+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 可能需要一个完整的数字塔,因为它似乎一直在争论。
推荐阅读
- javascript - 问题/错误 'Property''xs' 在带有 tensorflow.js 的 Angular 项目中的类型 'TensorContainer' 上不存在
- java - Java 作业(初学者) - 我认为我的数学或声明有问题?
- github - 如何从 PC 中永久删除旧的 github 帐户
- jsf - 为什么单独的 RequestScoped bean 没有注入到 JSF commandButton 动作调用的 bean 中?
- android - 如何支持 sdk 28+ 的 64 位架构?
- python - + 不支持的操作数类型:'float' 和 'datetime.timedelta'", '发生在索引 5')
- c# - 尝试访问文件
- macos - 在安装 SMB 驱动器并在没有 root 的情况下读取它时遇到问题
- html - 如何在不拉伸的情况下将图像放入css-grid
- c# - 如何使用 C# 通过 Json 中的键名获取值列表