[Haskell-cafe] GHC predictability
Andrew Coppin
andrewcoppin at btinternet.com
Tue May 13 17:01:28 EDT 2008
Don Stewart wrote:
> Andrew, would you say you understand the original problem of why
>
> mean xs = sum xs / fromIntegral (length xs)
>
> was a bad idea now? Or why the left folds were a better solution?
>
That definition of mean is wrong because it traverses the list twice.
(Curiosity: would traversing it twice in parallel work any better?) As
for the folds - I always *always* mix up left and right folds. Every
single damn time I want a fold I have to look it up to see which one I
want. I had a similar problem with learning to drive, by the way... the
consequences there are of course much more serious than just crashing
your _computer_...
It was probably a poor example. The point I was attempting to make is
that in Haskell, very subtle little things can have an unexpectedly
profound effect. If you don't know what you're supposed to be looking
for, it can be really hard to see why your program is performing badly.
For what it's worth, I think I *do* currently have a reasonably gasp of
how lazzy evaluation works, normal order reduction, graph machines, and
so on. And yet, I still have trouble making my code go fast sometimes.
As I said in another post, if I can track down some *specific* programs
I've written and had problems with, maybe we can have a more meaningful
debate about it.
More information about the Haskell-Cafe
mailing list