fork(11) download
  1. import Control.Monad
  2. import Text.Printf
  3.  
  4. go :: Integer -> Int -> Rational
  5. go n 0 = fromIntegral n
  6. go n r = fromIntegral n + go (2*n) (r-1) / go (3*n) (r-1)
  7.  
  8. main :: IO ()
  9. main = do
  10. print $ sqrt 3
  11. forM_ [1..16] $ \i -> do
  12. printf "%d iteration(s): %f\n" i (fromRational $ go 1 i :: Double)
Success #stdin #stdout 3.38s 7860KB
stdin
Standard input is empty
stdout
1.7320508075688772

1 iteration(s): 1.6666666666666667
2 iteration(s): 1.7272727272727273
3 iteration(s): 1.7317757009345793
4 iteration(s): 1.7320189465191762
5 iteration(s): 1.7320269946298965
6 iteration(s): 1.7320271423056381
7 iteration(s): 1.732027143735338
8 iteration(s): 1.7320271437424635
9 iteration(s): 1.7320271437424817
10 iteration(s): 1.7320271437424817
11 iteration(s): 1.7320271437424817
12 iteration(s): 1.7320271437424817
13 iteration(s): 1.7320271437424817
14 iteration(s): 1.7320271437424817
15 iteration(s): 1.7320271437424817
16 iteration(s): 1.7320271437424817