[Haskell-cafe] Typo or on purpose? http://haskell.org/ghc/docs/6.12.2/html/users_guide/lang-parallel.html

Malcolm Wallace malcolm.wallace at me.com
Mon Aug 9 10:19:38 EDT 2010


On 8 Aug 2010, at 20:23, Alexander Kotelnikov wrote:

> This + 1 in (n1 + n2 + 1) what is it doing there?
>
> 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)

The nfib function, by convention, counts the number of function calls  
needed in an evaluation of the fibonacci number, rather than  
evaluating the fibonacci number itself.  Hence the +1.

Regards,
     Malcolm



More information about the Haskell-Cafe mailing list