[Haskell-beginners] Haskell code optimisation
Kim-Ee Yeoh
ky3 at atamo.com
Fri Dec 11 15:44:41 UTC 2015
Have you tried BangPatterns? Compiled with optimization, I get 22 secs.
Here's the full program:
{-# LANGUAGE BangPatterns #-}
f :: Int -> Int -> Int
f !m !n
| m==0 = n+1
| n==0 = f (m-1) 1
| otherwise = f (m-1) (f m (n-1))
main = putStrLn (show (f 4 1))
-- Kim-Ee
On Fri, Dec 11, 2015 at 9:47 PM, Abhishek Kumar <abhishekkmr18 at gmail.com>
wrote:
> I was trying to write below program for ackerman function but it fails
> (waits too long) for ack(4,1) whereas a recursive C program gives result in
> 37secs.Can someone pls explain this behaviour and recomend some
> optimisation.
>
> ------haskell code
> f m n | m==0 =n+1
> | n==0 = f (m-1) 1
> | otherwise = f (m-1) (f m (n-1))
>
> Thanks
> Abhishek Kumar
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20151211/d198138a/attachment.html>
More information about the Beginners
mailing list