Let me explore this a bit:

  lazyMap ~(x:xs) = f x : lazyMap f xs

Now you tell the compiler that the list you are constructing
is infinite. Moreover, you can inspect the *result* of the
function before it ever evaluates its argument!

What exactly do you mean by inspect the result before the evaluation? Do you
mean you can start consuming the produced list before all elements are
generated?

Mike


Reply via email to