Michael
===========
{- import
Control.Parallel
nfib :: Int -> Int nfib n | n <= 1 = 1
| otherwise = par n1 (pseq n2 (n1 + n2 + 1)) where n1 = nfib (n-1)
n2 = nfib
(n-2) -}
nfib :: Int -> Int
nfib n | n <= 1 = 1 | otherwise = nfib (n-1) + nfib (n-2)
main = do putStrLn $ show $ nfib 39
=============
[michael@hostname ~]$ ghc --make -threaded nfib.hs
[1 of 1] Compiling Main ( nfib.hs, nfib.o ) Linking nfib ...
[michael@hostname ~]$ ./nfib +RTS -N3 204668309 [michael@hostname ~]$ ghc --make nfib.hs
[1 of 1] Compiling Main ( nfib.hs, nfib.o ) Linking nfib
... [michael@hostname ~]$ ./nfib 102334155 [michael@hostname ~]$
|