> Some new possibilities have come to light. Here are all the possible
> Scheme infinity notations that I know of:
> Notations C and G use a trailing `.' to indicate inexactness as K
> does. This requires a small extension to R5RS number syntax, as
> rational notation (`1/0') does not currently allow a trailing period.
- however may not be necessary if +Inf is symbolically defined as +1/0.
And I'll concede my perceived necessity to denote an ambiguously signed
infinity in exchange for the prevention of incorrectly signed infinities,
which means that the region about 0 must be considered correspondingly
invalid, (i.e. both are considered NaN or 0/0). yielding:
/ NaN \ or equivalently: / 0/0 \
/ | \ / | \
-Inf | +Inf -1/0 | +1/0
------+------- (reciprocal projection axis) ------+------
-0.0 | 0.0 -0.0 | +0.0
\ | / \ | /
\ NaN / \ 0/0 /
| |
0 0
(negative projection axis) (negative projection axis)
(where NaN and +-Inf may be thought of as symbols defined as 0/0 and +-1/0)
Which helps eliminates the ordering concern, although it's likely still a
good idea to define (= -0.0 0 +0.0) => #t, and (< -0.0 0 +0.0) => #t, etc.
However then 0/0 denotes all ambiguities in either sign or value, even those
which may be very small, then Therefore:
(+ +0.0 -0.0) => 0/0 [aka NaN]
as otherwise:
(/ (+ +0.0 -0.0 +0.0)) :: (/ (+ 0 +0.0)) :: (/ +0.0) => +Inf
[which would be incorrect]
Thereby one can argue that this is actually good, as then the iterative sum
of alternating infinitely small value about 0 is considered ambiguous, which
would typically be the case. and correspondingly yield 0/0 for all
ambiguities in either sign or significant magnitude.
(tan pi/2) => 0/0
(/ 0.0 0.0) => 0/0