[Haskell-cafe] Re: Write Haskell as fast as C. [Was: Re: GHC predictability]

Andrew Coppin andrewcoppin at btinternet.com
Fri May 16 16:23:40 EDT 2008


apfelmus wrote:
> Andrew Coppin wrote:
>> Look closer: it's hardER to read.
>>
>>  mean xs = sum xs / fromIntegral (length xs)
>>
>>  mean = go 0 0 n
>>    where
>>      go s l x
>>        | x > m = s / fromIntegral l
>>        | otherwise = go (s+x) (l+1) (x+1
>>
>> One version makes it instantly clear, at a glance, what is happening. 
>> The other requires you to mentally walk round a look, imperative 
>> style, to figure out what's happening. It's not a *big* deal, but 
>> it's unfortunate.
>>
>> I'm more worried about what happens in less trivial examples. [Let's 
>> face it, who wants to compute the sum of the numbers from 1 to N?]
>
> Hm, it seems like you're expecting magic, aren't you?
>

Well, obviously it would be nice, wouldn't it? ;-)

> Of course the first equation is easier to read, but it's no surprise 
> that this may actually be slower. Like the imperative bubblesort is 
> easier to read than the imperative quicksort but far slower.

I'm just saying, I prefer it when somebody posts some tiny snippet of 
Haskell that does the same thing as a 40-line C program, and then show 
how using some novel technique they just invented, the Haskell version 
actually outperforms C even though it's more reasable and more 
maintainable. Hey, who *wouldn't* like to have their cake and eat it 
too? :-)

But yeah, I get the point. Everybody wants me to be quiet and go away. 
So I'll go be quiet now...



More information about the Haskell-Cafe mailing list