[Haskell-cafe] Great language shootout: reloaded
Bulat Ziganshin
bulat.ziganshin at gmail.com
Sat Nov 11 04:00:49 EST 2006
Hello Isaac,
Saturday, November 11, 2006, 5:56:57 AM, you wrote:
> 2) Some Haskell programs were pushed into 'interesting alternative
> implementations' because they'd strayed so far from the spirit of the
> benchmark. (It takes a while for people to notice and complain, but
> eventually they do.)
it's very real :) while ghc allows to write rather fast programs, such
programs are much harder to write and manage than even equivalent C
ones! just for comparison:
-- compact, but very slow
s = sum arr
// not so compact, but very fast
double sum=0; for(int i=0; i<10; i++) sum+=arr[i];
// nor fast, nor compact, nor in Haskell spirit anyway :))
sum' <- newIORef 0
for 0 10 $ \i ->
do x <- unsafeRead arr i
sum <- readIORef sum'
writeIORef sum' (sum+x)
for :: Int -> Int -> (Int -> IO a) -> IO ()
-- Faster equivalent of "mapM_ action [from..to-1]"
for from to action = go from
where
go i | i>=to = return ()
| otherwise = do action i
go $! (i+1)
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list