Mark H Weaver <m...@netris.org> writes:
> Our core '/' operator, as defined in numbers.c, raises an exception for
> (/ x 0), for any 'x'. This does not conform to the R6RS, which
> specifies that (/ 0.0 0) => +inf.0. I don't think that rule makes sense
Sorry, I meant to write (/ 1.0 0) => +inf.0, which is one of the
examples given in the R6RS.
> because the sign of the result cannot be justified. (/ 1 0.0) => +inf.0
> and (/ 1 -0.0) => -inf.0 are more justifiable because of the signed
> inexact zeroes, but an exact zero is not signed.
> However, it may be that we should change this to conform to the R6RS,
> and certainly it would be good for our compiler and interpreter to agree
> on all of these edge cases.