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
any overhead for doing this.
--
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'.
>
> instead of
> > (\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.
>