[Haskell-cafe] Re: Shouldn't this loop indefinitely => take (last [0..]) [0..]

Loup Vaillant loup.vaillant at gmail.com
Fri Apr 4 12:31:30 EDT 2008


2008/4/4, Neil Mitchell <ndmitchell at gmail.com>:
> >  >  >  Also, having strict Int's by default is a bit ugly, in an
>  >  >  >  otherwise lazy-by-default language.
>  >
>
> >  I meant:
>  >  (\x (y :: Int) -> x + 1) 1 (1/0 :: Int) <=> _|_ ?
>
>  Division by 0 is still an error. What I mean is:

Yes, but this particular one need not be performed. Will it be?

>  length xs == length ys
>
>  Where length xs = 1 and ys = 1000. This takes 1000 steps to tell the
>  Int's aren't equal, since we don't have proper lazy naturals. If we
>  did, it would take 2 steps.

Err, really? I mean, could we calculate this equality without reducing
length ys to weak head normal form (and then to plain normal form)?

What do you mean by "proper Lazy naturals"? Peano ones?

Loup


More information about the Haskell-Cafe mailing list