[Haskell-cafe] Re: 0/0 > 1 == False

Henning Thielemann lemming at henning-thielemann.de
Sat Jan 12 04:58:11 EST 2008


On Sat, 12 Jan 2008, Achim Schneider wrote:

> Kalman Noel <kalman.noel at bluebottle.com> wrote:
>
> > Achim Schneider wrote:
> > > whereas lim( 0 ) * lim( inf ) is anything you want
> >
> > Indeed I suppose that »lim inf«, which is a notation I'm not familiar
> > with, is not actually defined to mean anything?
> >
> It's an ad-hoc expression of "as the slices approach zero size, their
> number approaches infinity". It's more an observation than anything
> else. I have no idea how a professional mathematician would formalise
> it.

In Haskell you could professionally formalize it, if you would have a
function, which computes the limit of a sequence:
   limit :: [Real] -> Real
  (Cf. "Why functional progrmaming matters"
     http://www.math.chalmers.se/~rjmh/Papers/whyfp.html)


let xs = iterate (1+) 1    -- example for "lim (inf)"
    ys = map recip xs      -- example for "lim (0)"
in  limit (zipWith (*) xs ys)

If 'limit xs' and 'limit ys' are defined, then it holds
   limit (zipWith (*) xs ys)   ==   limit xs * limit ys
 but in your case 'limit xs' does not exist. You can imagine it as
infinity, but to make it formally safe, you need something non-standard
analysis.


More information about the Haskell-Cafe mailing list