Chris Clearwater wrote:
It seems to
me you could get some of the desired effects of lazy evaluation by using
continuation passing style in code. For example, take this psuedo-code
using CPS to represent an infinite data type.

Using non-CPS this would be something like:
ones = 1 : ones

using strict evaluation this would lead to an infinite loop.

However using CPS this could be represented as:
ones c = c (1 : ones)

where c is the continuation.

This would not infinite loop as ones is still waiting for the
continuation argument. Another example:

natural n c = c (n : natural n+1)

Hey, Maestro, why don't you check before posting, hm? What is the type
of ones? I am afraid you will get a nasty surprise...

... BTW, are you sure there aren't any missing parentheses in the
def. of natural? (But they won't help anyway...)


Jerzy Karczmarczuk



_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to