# efficiency question

Hal Daume III hdaume@ISI.EDU
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

--
Hal Daume III

"Computer science is no more about computers    | hdaume@isi.edu
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'.
>
> > (\x (a,b) -> (x+a,x-b))
> try
> > (\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?
>
> J.A.
>

```