On Apr 5, 2006, at 4:51 PM, John Meacham wrote:

On Wed, Apr 05, 2006 at 10:34:09AM -0500, Spencer Janssen wrote:
How about an implementation that sets the deepSeq'd bit *after* each
field has been successfully deepSeq'd? deepSeq'ing a cyclic structure
would behave just like an infinite structure.

what would be the point of having a bit then?

Because deepSeq's cost to evaluate a list that will eventually be required is linear. The maximum number of deepSeq calls (and recursive calls) you can do over any
structure is simply the number of nodes.

Consider:

  foldr (\ a as -> deepSeq (a : as)) [] $ some list

With the bit ==> one deepSeq per cons, then we hit the 'is-pre- deepSeqd' bit.
Without the bit ==> O(n^2)

in any case, we should talk about the meaning of deepseqing something,
not its implementation.

depth limited recursive seq seems like the best route to me.

        John

--
John Meacham - ⑆repetae.net⑆john⑈
_______________________________________________
Haskell-prime mailing list
[email protected]
http://haskell.org/mailman/listinfo/haskell-prime

_______________________________________________
Haskell-prime mailing list
[email protected]
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to