[Haskell-cafe] Shouldnt this be lazy too?
Philippa Cowderoy
flippa at flippac.org
Mon Sep 24 12:38:11 EDT 2007
On Mon, 24 Sep 2007, Vimal wrote:
> Hi all,
>
> I was surprised to find out that the following piece of code:
>
> > length [1..] > 10
>
> isnt lazily evaluated! I wouldnt expect this to be a bug, but
> in this case, shouldnt the computation end when the length function
> evaluation goes something like:
>
> > 10 + length [11..]
>
> ?
>
If you used genericLength and had it returning this type with an
appropriate Num instance:
data Nat = Zero | Succ Nat
then it'd be sufficiently lazy. As it is, an Int is something you either
have or don't - you can't only evaluate "is it less than x" without having
to fully evaluate it.
--
flippa at flippac.org
"The reason for this is simple yet profound. Equations of the form
x = x are completely useless. All interesting equations are of the
form x = y." -- John C. Baez
More information about the Haskell-Cafe
mailing list