Advertisement
Guest User

Untitled

a guest
Jan 25th, 2015
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1. import qualified Data.Vector.Mutable as MV
  2. import Data.IORef
  3. import Control.Monad
  4.  
  5. test1 n = do
  6. sum <- newIORef (0 :: Int)
  7. v <- MV.new (n+1)
  8. forM_ [0..n] $ \i ->do
  9. MV.write v i i
  10. forM_ [0..n] $ \i ->do
  11. MV.read v i >>= writeIORef sum
  12. readIORef sum
  13.  
  14. test2 n = do
  15. sum <- newIORef (0 :: Int)
  16. vec <- MV.new (n+1) >>= newIORef
  17. forM_ [0..n] $ \i ->do
  18. v <- readIORef vec
  19. MV.write v i i
  20. forM_ [0..n] $ \i ->do
  21. v <- readIORef vec
  22. MV.read v i >>= writeIORef sum
  23. readIORef sum
  24.  
  25. main = do
  26. test1 1000000 >>= print
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement