fork download
  1. type Reals = Double
  2.  
  3. prod :: Reals -> Reals -> Reals
  4. prod a b = a*b
  5.  
  6. coprod :: Reals -> Reals -> Reals
  7. coprod a b = a + b - (prod a b)
  8.  
  9. newsum :: Reals -> Reals -> Int -> Reals
  10. newsum a b n =
  11. approxA!!n
  12. where
  13. approxA = a : zipWith coprod approxA approxB
  14. approxB = b : zipWith prod approxA approxB
  15.  
  16. main = print $ newsum 0.5 0.5 10000000
Success #stdin #stdout 3.63s 0KB
stdin
Standard input is empty
stdout
0.9999999000001789