[Haskell-cafe] Some random newbie questions

Jorge Adriano Aires jadrian at mat.uc.pt
Sun Jan 9 17:57:21 EST 2005


On Sunday 09 January 2005 21:30, Marcin 'Qrczak' Kowalczyk wrote:
> Jorge Adriano Aires <jadrian at mat.uc.pt> writes:
> >> No, it would work with strict foldl too. In fact in the absence
> >> of optimization it would work better (uses less time and space).
> >> The optimization required is inlining and strictness analysis.
> >
> > Is this also true if your just going to use the first few elements after
> > reversing it?
>
> Yes. A strict fold would evaluate cons cells of the result while they
> are constructed, not list elements. They are all defined (flip (:) x y
> is always defined), so a strict foldl is correct.

Yes, now I was refering to the efficiency issue only. 

> Making a cons cell should be not more expensive than making a thunk
> which will make a cons cell when evaluated. 

Ok, I wasn't sure about this...

> Well, unless the 
> implementation doesn't inline flip and thus making these thunks
> is actually faster than running them. In this case a lazy foldl is
> more efficient than a strict foldl, as long as a sufficiently small
> part of the result is used; it's always less efficient if the whole
> result is examined.

Right.

J.A.


More information about the Haskell-Cafe mailing list