Skip to content

Instantly share code, notes, and snippets.

@cmoore
Created October 7, 2009 07:30
Show Gist options
  • Save cmoore/203853 to your computer and use it in GitHub Desktop.
Save cmoore/203853 to your computer and use it in GitHub Desktop.
import Control.Parallel
import Control.Monad
import Text.Printf
cutoff = 35
fib' :: Int -> Integer
fib' 0 = 0
fib' 1 = 1
fib' n = fib' (n-1) + fib' (n-2)
fib :: Int -> Integer
fib n | n < cutoff = fib' n
| otherwise = r `par` (l `pseq` l + r)
where
l = fib (n-1)
r = fib (n-2)
main = forM_ [0..45] $ \i ->
printf "n=%d => %d\n" i (fib i)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment