[Haskell-cafe] Re: 0/0 > 1 == False
barsoap at web.de
Sat Jan 12 02:25:19 EST 2008
Jonathan Cast <jonathanccast at fastmail.fm> wrote:
> On 11 Jan 2008, at 10:12 AM, Achim Schneider wrote:
> > David Roundy <droundy at darcs.net> wrote:
> >> Prelude> let x=1e-300/1e300
> >> Prelude> x
> >> 0.0
> >> Prelude> x/x
> >> NaN
> >> The "true" answer here is that x/x == 1.0 (not 0 or +Infinity), but
> >> there's no way for the computer to know this, so it's NaN.
> Didn't catch this the first time around, but: only to a physicist.
> (I mean no disrespect to the author of darcs, but nevertheless the
> point stands). Back in the real world, 0 / 0 may be defined
> arbitrarily, or left undefined. (Defining it breaks the wonderful
> property that, if lim (xn) = x, lim (yn) = y, and x/y = z, then lim
> (xn / yn) = z. This is considered a Bad Thing by real
> mathematicians). In fact, in integration theory 0 * inf = 0 for
> certain 'multiplications', which gives the lie to 0 / 0.
whereas lim( 0 ) * lim( inf ) is anything you want, or, more precisely,
the area of the thing you started with. It's like taking seven balls,
assembling them into a hexagon and claiming it's a circle.
Such things just "happen" if you are working with pure abstractions.
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
More information about the Haskell-Cafe