[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