[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: My ideas about infinity in Scheme (revised)



On 5/22/05, Aubrey Jaffer <agj@xxxxxxxxxxxx> wrote:
> 
>  | Even if this SRFI won't specify exact infinity, it should not use
>  | the "syntax of numerical constants" 1/0 and -1/0, but +inf.0 and
>  | -inf.0 instead, so that a latter SRFI can use 1/0 and -1/0 as exact
>  | infinity.
> 
> In hundreds of years of using rational numbers, mathematicians have
> not discovered 1/0 to be a useful extension to the rational numbers.

Well, mathematically 1/0 isn't real or complex either, as it doesn't
obey the properties of a field and breaks the fundamental theorem of
algebra.

Nonetheless it's a useful concept, particularly in limited computer
mathematics, and has precedent in other languages.  The lack of
precedent in rational infinity is likely due to the lack of rationals
in other languages.  I see no particular reason why real infinity
should be any more or less useful than rational infinity.

However, there are efficiency concerns, and many Schemes will want to
implement infinity implicitly in terms of hardware IEEE floats.  This
is an argument for making infinities only inexact reals, though then
you'd also be implicitly moving 0/0 into the reals.

> While the number syntax of R5RS can be readily extended to include
> +inf.0, -inf.0 (because of the leading sign). "nan.0" runs afoul of
> R5RS 2.1 Identifiers:

I've seen "+nan.0" used.  Personally I prefer "0/0".

-- 
Alex