This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for ticket #218
cc
changetime
2011-09-11 07:52:01
component
WG1 - Reader Syntax
description
The current BNF for symbol syntax is rather
cumbersome, having to account for the fact
that +inf.0, -inf.0 and +nan.0 are numbers
even though they do not begin with a numeric
prefix.
A simple solution would be to use an alternative
such as 0/1, 0/-1 and 0/0, respectively. These
are shorter, more self explanatory, and do not
conflict with the definition of symbol syntax.
id
218
keywords
milestone
owner
alexshinn
priority
major
reporter
alexshinn
resolution
wontfix
severity
status
closed
summary
infinity/nan syntax
time
2011-06-07 21:10:16
type
defect
Changes
Change at time 2011-09-11 07:52:01
author
cowan
field
comment
newvalue
WG1 rejected this proposal.
oldvalue
2
raw-time
1315702321000000
ticket
218
time
2011-09-11 07:52:01
Change at time 2011-09-11 07:52:01
author
cowan
field
resolution
newvalue
wontfix
oldvalue
raw-time
1315702321000000
ticket
218
time
2011-09-11 07:52:01
Change at time 2011-09-11 07:52:01
author
cowan
field
status
newvalue
closed
oldvalue
new
raw-time
1315702321000000
ticket
218
time
2011-09-11 07:52:01
Change at time 2011-06-08 03:44:36
author
cowan
field
comment
newvalue
Standardization is not about inventing new stuff unless we have to. Currently:
* Racket, Gauche, Gambit, Chicken (with some bugs), Guile, Kawa, Chibi, Chez, SCM, Ikarus, Larceny, !IronScheme, Ypsilon, Mosh, STklos support the `+inf.0`, `-inf.0`, `+nan.0` syntaxes.
* Bigloo prints `+Infinity`, `-Infinity`, `Infinity` on output but treats these as symbols on input.
* Scheme48 prints `#{Inf}`, `#{-Inf}`, `#{NaN}` but does not accept these syntaxes on input.
* SISC prints `infinity.0`, `-infinity.0`, `nan.0` but treats these as symbols on input.
* !SigScheme doesn't do flonums.
* MIT Scheme, scsh report errors and so needs no such syntax.
* Scheme 9 reports errors for the infinities and evaluates `(/ 0.0 0.0)` to `0.0`.
In addition, those syntaxes look exact, not inexact. You could fix that with a decimal point, but people would tend to forget where it went (is it 0./1, 0.0/1, 0/1., 0/1.0, some of these, all of these?)
oldvalue
1
raw-time
1307479476000000
ticket
218
time
2011-06-08 03:44:36