Hal Daume III
Fri, 8 Feb 2002 16:35:16 -0800 (PST)
I agree that it's the overhead of (,), but I don't see why there would be
any overhead for doing this.
Hal Daume III
"Computer science is no more about computers | [email protected]
than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume
On Sat, 9 Feb 2002, Jorge Adriano wrote:
> On Friday 08 February 2002 23:52, Hal Daume III wrote:
> > I've tried using a strict fold:
> > foldl' f a  = a
> > foldl' f a (x:xs) = (foldl' f $! f a x) xs
> > but that has no effect (or minimal effect).
> That wouldn't work even if if laziness is the problem because that would only
> cause the elements of the list to be evaluated to head normal form, the
> elements of the pair would not be evaluated so you'd have a 'suspension of
> (minus and plus) operations'.
> instead of
> > (\x (a,b) -> (x+a,x-b))
> > (\x (a,b) -> (((,) $! x-a)$! x-b) )
> I just noticed that you were the one who sent me the DeepSeq module.
> This is the kind of place where I want to use it.
> Instead of $!, try $!!.
> And Konst Sushenko wrote:
> >>My guess is that it is due to the laziness of the addition/subtraction
> >>in (,)
> Seems to me like lazyness is not the right guess because both functions Hall
> first posted were lazy. So I think it's just the overhead of applying (,)
> besides (+) and (-) in each step. Do I make sense or am I missing something?