in reply to Re: BlooP and FlooP and GlooP: Turing Equivalence, Lazy Evaluation, and Perl6
in thread BlooP and FlooP and GlooP: Turing Equivalence, Lazy Evaluation, and Perl6

I think you are muddling the concepts of infinity, as in the digits of pi; and undecidability

Perhaps, but in practice, aren't there cases where the difference doesn't actually matter? If we don't know whether a lazy function will halt for all possible inputs, wouldn't we just give it the input we've got and let it run until either it does halt or the user takes some action to cause us to stop it (either by way of the program's own interface or an OS process management facility)?

Don't get me wrong -- I think lazy evaluation is a great idea. But it's not going to solve any unsolveable problems, just golf down some of the solveable ones.

Right, I agree with that entirely. This is what I meant when I said that lazy eval doesn't create GLooP (a theoretical more-than-Turing language), but nonetheless can be terribly convenient.

(Hmmm... OTOH, if we wanted to let something run in the background, we'd probably use fork rather than lazy. Still, I think lazy will be useful.)


Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. Why, I've got so much sanity it's driving me crazy.
  • Comment on Re: BlooP and FlooP and GlooP: Turing Equivalence, Lazy Evaluation, and Perl6

Replies are listed 'Best First'.
Re^2: BlooP and FlooP and GlooP: Turing Equivalence, Lazy Evaluation, and Perl6
by QM (Parson) on Mar 29, 2006 at 02:36 UTC
    OK, how about the difference between a program computing the digits of pi, and the program trying to decide Russell's Paradox? The first one keeps churning out digits (aka, "progress"). The second one never achieves any progress (or in some formulations, positive and negative progress in infinite alternation).

    You can compute pi to any arbitrary precision. You can't get anywhere with the other.

    -QM
    --
    Quantum Mechanics: The dreams stuff is made of