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.
>