Cost of seq (sorry about the old subject)

On 11/2/06, Bulat Ziganshin
Hello Chad,
Thursday, November 2, 2006, 8:49:17 PM, you [Chad] wrote:
Would it be possible for the type system to distinguish at compile time whether something would need to be evaluated, and optimize away redundant `seq`s? Maybe this is what the strictness analyzer does already.
afaik, seq cost is zero (except for evaluating expressions, of course)
So if x has already been evaluated, does x `seq` y evaluate just as quickly as y alone, or does it require extra cycles to make sure x has been evaluated? -- Chad Scherrer "Time flies like an arrow; fruit flies like a banana" -- Groucho Marx

"Chad Scherrer"
afaik, seq cost is zero (except for evaluating expressions, of course)
So if x has already been evaluated, does x `seq` y evaluate just as quickly as y alone, or does it require extra cycles to make sure x has been evaluated?
My understanding is that `seq` does indeed cost extra cycles at runtime _if it is actually executed_. But of course, the fact that it appears in your source code does not guarantee that it is executed at runtime. If the compiler can determine statically (through strictness analysis) that x is already in evaluated form, then it is at liberty to remove the `seq` from the code. Regards, Malcolm
participants (2)
-
Chad Scherrer
-
Malcolm Wallace