[Haskell-cafe] Stack vs Heap allocation

Edsko de Vries devriese at cs.tcd.ie
Sat May 10 04:18:12 EDT 2008


Hi,

> > > (...(((1+2)+3)+4) ... + 10000000)
> > > which requires stack in proportion to the number of nested parentheses
> > 
> > Ah, that makes! So does it make sense to talk about "tail recursive
> > thunks"? Or does the evaluation of thunks always take stack space
> > proportional to the "nesting level"? 
> 
> The key reason why nested additions take stack space, is because (+) on
> Integers is *strict* in both arguments.  If it were somehow non-strict
> instead, then the unevaluated parts of the number would be heap-allocated
> rather than stack-allocated.

I don't understand. Could you elaborate?

Thanks,

Edsko


More information about the Haskell-Cafe mailing list