方案编号文字中#的含义

Abh*_*uch 11 syntax scheme racket

DrRacket运行R5RS表示这1###是一个完全有效的Scheme号,并打印出一个值1000.0.这让我相信英镑符号(#)表示数字不精确,但我不确定.该规范还说它是一个数字文字的有效语法,但它没有说明这些符号的含义.

有关计划编号文字中#符号的重要信息吗?

soe*_*ard 14

哈希语法是在1989年引入的.在Scheme作者邮件列表中讨论了不精确的数字,其中包含了一些不错的想法.有些人抓住了,有些则没有.

http://groups.csail.mit.edu/mac/ftpdir/scheme-mail/HTML/rrrs-1989/msg00178.html

卡住的一个想法是引入#一个未知数字的代表.如果您有两个有效数字的测量值,您可以用23##数字表示2并且3已知,但最后的数字是未知的.如果你写2300,那么你不能看到这两个零不是值得信赖的.当我看到我期望23##评估到2350 的语法时,但(我相信)解释依赖于实现.许多实现解释23##为2300.

语法在这里正式介绍:

http://groups.csail.mit.edu/mac/ftpdir/scheme-mail/HTML/rrrs-1989/msg00324.html

编辑

来自http://groups.csail.mit.edu/mac/ftpdir/scheme-reports/r3rs-html/r3rs_8.html#SEC52

尝试生成比数字内部机器表示中可用数字更多的数字将标记为填充额外数字的"#".这不是实现知道或跟踪数字重要性的声明,只是机器将标记尝试生成只有15位机器表示的数字的20位数:

3.14158265358979 #####; (flo 20(精确度s))

EDIT2

Gerald Jay Sussman写道为什么在这里介绍语法:

http://groups.csail.mit.edu/mac/ftpdir/scheme-mail/HTML/rrrs-1994/msg00096.html


Dav*_*ton 8

以下是关于数值常数的R4RS和R5RS文档:

以机智:

如果数字的书面表示没有精确性前缀,则常量可以是不精确的或精确的.如果它在数字位置包含小数点,指数或"#"字符则不准确,否则它是精确的.

不确定它们是否意味着除此之外的任何东西0.