Luke Andrew wrote:
import Control.Parallel
fib1 n = if n == 0 then 0 else if n == 1 then 1 else fib1 (n-1) +
fib1 (n-2)
fib2 n = if n == 0 then 0 else if n == 1 then 1 else fib2 (n-1) +
fib2 (n-2)
main = do print $ (fib2 37 `par` fib1 37) + (fib2 37)
"fib2 37" won't be shared.
You're telling ghc to calculate fib2 37 once, in parallel, throw it
away, and then calculate it again.
Try:
let f1 = fib1 37
f2 = fib2 37
in print $ (f2 `par` f1) + f2
Jules
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe